HTML DOM 定义了访问和操作 HTML 文档的标准方法。
DOM 以树结构表达 HTML 文档。
::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM 简介
。。。。。。。。。
什么是 DOM?
DOM 是 W3C(万维网联盟)的标准。
DOM 定义了访问 HTML 和 XML 文档的标准:
"W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。"
W3C DOM 标准被分为 3 个不同的部分:
核心 DOM - 针对任何结构化文档的标准模型
XML DOM - 针对 XML 文档的标准模型
HTML DOM - 针对 HTML 文档的标准模型
编者注:DOM 是 Document Object Model(文档对象模型)的缩写。
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、成都微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了南丹免费建站欢迎大家使用!
http:/ /www.iis7.com/a/lm/gjcpmcx/
。。。。。。。。。。
什么是 XML DOM?
XML DOM 定义了所有 XML 元素的对象和属性,以及访问它们的方法。
。。。。。。。。。。
什么是 HTML DOM?
HTML DOM 是:
HTML 的标准对象模型
HTML 的标准编程接口
W3C 标准
HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。
换言之,HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM 节点
在 HTML DOM 中,所有事物都是节点。DOM 是被视为节点树的 HTML。
。。。。。。。。。。
DOM Nodes
DOM 节点
根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点:
整个文档是一个文档节点
每个 HTML 元素是元素节点
HTML 元素内的文本是文本节点
每个 HTML 属性是属性节点
注释是注释节点
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM 方法
HTML DOM 方法是我们可以在节点(HTML 元素)上执行的动作。
HTML DOM 属性是我们可以在节点(HTML 元素)设置和修改的值。
。。。。。。。。。。
编程接口
可通过 JavaScript (以及其他编程语言)对 HTML DOM 进行访问。
所有 HTML 元素被定义为对象,而编程接口则是对象方法和对象属性。
方法是您能够执行的动作(比如添加或修改元素)。
属性是您能够获取或设置的值(比如节点的名称或内容)。
。。。。。。。。。。
getElementById() 方法
getElementById() 方法返回带有指定 ID 的元素
。。。。。。。。。。
HTML DOM 对象 - 方法和属性
一些常用的 HTML DOM 方法:
getElementById(id) - 获取带有指定 id 的节点(元素)
appendChild(node) - 插入新的子节点(元素)
removeChild(node) - 删除子节点(元素)
一些常用的 HTML DOM 属性:
innerHTML - 节点(元素)的文本值
parentNode - 节点(元素)的父节点
childNodes - 节点(元素)的子节点
attributes - 节点(元素)的属性节点
。。。。。。。。。。。。
现实生活中的对象
某个人是一个对象。
人的方法可能是 eat(), sleep(), work(), play() 等等。
所有人都有这些方法,但会在不同时间执行它们。
一个人的属性包括姓名、身高、体重、年龄、性别等等。
所有人都有这些属性,但它们的值因人而异。
。。。。。。。。。。。。。
一些 DOM 对象方法
方法 描述
getElementById() 返回带有指定 ID 的元素。
getElementsByTagName() 返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)。
getElementsByClassName() 返回包含带有指定类名的所有元素的节点列表。
appendChild() 把新的子节点添加到指定节点。
removeChild() 删除子节点。
replaceChild() 替换子节点。
insertBefore() 在指定的子节点前面插入新的子节点。
createAttribute() 创建属性节点。
createElement() 创建元素节点。
createTextNode() 创建文本节点。
getAttribute() 返回指定的属性值。
setAttribute() 把指定属性设置或修改为指定的值。
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM 属性
属性是节点(HTML 元素)的值,您能够获取或设置。
。。。。。。。。。。。
编程接口
可通过 JavaScript (以及其他编程语言)对 HTML DOM 进行访问。
所有 HTML 元素被定义为对象,而编程接口则是对象方法和对象属性。
方法是您能够执行的动作(比如添加或修改元素)。
属性是您能够获取或设置的值(比如节点的名称或内容)。
。。。。。。。。。。。
innerHTML 属性
获取元素内容的最简单方法是使用 innerHTML 属性。
innerHTML 属性对于获取或替换 HTML 元素的内容很有用。
innerHTML 属性可用于获取或改变任意 HTML 元素,包括 和
。
。。。。。。。。。。。
nodeValue 属性
nodeValue 属性规定节点的值。
元素节点的 nodeValue 是 undefined 或 null
文本节点的 nodeValue 是文本本身
属性节点的 nodeValue 是属性值
nodeName 属性规定节点的名称。
nodeName 是只读的
元素节点的 nodeName 与标签名相同
属性节点的 nodeName 与属性名相同
文本节点的 nodeName 始终是 #text
文档节点的 nodeName 始终是 #document
注意: nodeName 始终包含 HTML 元素的大写字母标签名。
。。。。。。。。。。。。
nodeType 属性
nodeType 属性返回节点的类型。nodeType 是只读的。
比较重要的节点类型有:
元素类型 NodeType
元素 1
属性 2
文本 3
注释 8
文档 9
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM 访问
访问 HTML DOM - 查找 HTML 元素。
。。。。。。。。。。
访问 HTML 元素(节点)
访问 HTML 元素等同于访问节点
您能够以不同的方式来访问 HTML 元素:
通过使用 getElementById() 方法
通过使用 getElementsByTagName() 方法
通过使用 getElementsByClassName() 方法
。。。。。。。。。。
getElementById() 方法
getElementById() 方法返回带有指定 ID 的元素引用:
语法:node.getElementById("id")
。。。。。。。。。。
getElementsByTagName() 方法
getElementsByTagName() 返回带有指定标签名的所有元素。
语法:node.getElementsByTagName("tagname")
。。。。。。。。。。
The getElementsByClassName() Method
如果您希望查找带有相同类名的所有 HTML 元素,请使用这个方法:document.getElementsByClassName("class")
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM - 修改
修改 HTML = 改变元素、属性、样式和事件。
。。。。。。。。。。
修改 HTML 元素
修改 HTML DOM 意味着许多不同的方面:
改变 HTML 内容
改变 CSS 样式
改变 HTML 属性
创建新的 HTML 元素
删除已有的 HTML 元素
改变事件(处理程序)
。。。。。。。。。。
创建 HTML 内容,改变元素内容的最简单的方法是使用 innerHTML 属性。
改变 HTML 样式,通过 HTML DOM,您能够访问 HTML 元素的样式对象。
创建新的 HTML 元素,如需向 HTML DOM 添加新元素,您首先必须创建该元素(元素节点),然后把它追加到已有的元素上。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM - 修改 HTML 内容
通过 HTML DOM,JavaScript 能够访问 HTML 文档中的每个元素。
。。。。。。。。。。
使用事件
HTML DOM 允许您在事件发生时执行代码。
当 HTML 元素"有事情发生"时,浏览器就会生成事件:
在元素上点击
加载页面
改变输入字段
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM - 元素
添加、删除和替换 HTML 元素。
。。。。。。。。。。
创建新的 HTML 元素 - createElement(),如需向 HTML DOM 添加新元素,您首先必须创建该元素,然后把它追加到已有的元素上。
创建新的 HTML 元素 - insertBefore()
。。。。。。。。。。
删除已有的 HTML 元素,如需删除 HTML 元素,您必须清楚该元素的父元素
。。。。。。。。。。
能否在不引用父元素的情况下删除某个元素?
很抱歉。DOM 需要了解您需要删除的元素,以及它的父元素。
。。。。。。。。。。
替换 HTML 元素,如需替换 HTML DOM 中的元素,请使用 replaceChild() 方法
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM - 事件
HTML DOM 允许 JavaScript 对 HTML 事件作出反应。
。。。。。。。。。。。
对事件作出反应
当事件发生时,可以执行 JavaScript,比如当用户点击一个 HTML 元素时。
如需在用户点击某个元素时执行代码,请把 JavaScript 代码添加到 HTML 事件属性中:onclick=JavaScript
HTML 事件的例子:
当用户点击鼠标时
当网页已加载时
当图片已加载时
当鼠标移动到元素上时
当输入字段被改变时
当 HTML 表单被提交时
当用户触发按键时
。。。。。。。。。。。。
HTML 事件属性
如需向 HTML 元素分配事件,您可以使用事件属性。
。。。。。。。。。。。
onload 和 onunload 事件
当用户进入或离开页面时,会触发 onload 和 onunload 事件。
onload 事件可用于检查访客的浏览器类型和版本,以便基于这些信息来加载不同版本的网页。
onload 和 onunload 事件可用于处理 cookies。
。。。。。。。。。。。
onmouseover 和 onmouseout 事件
onmouseover 和 onmouseout 事件可用于在鼠标指针移动到或离开元素时触发函数。
。。。。。。。。。。。
onmousedown、onmouseup 以及 onclick 事件
onmousedown、onmouseup 以及 onclick 事件是鼠标点击的全部过程。首先当某个鼠标按钮被点击时,触发 onmousedown 事件,然后,当鼠标按钮被松开时,会触发 onmouseup 事件,最后,当鼠标点击完成时,触发 onclick 事件。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM 导航
通过 HTML DOM,您能够使用节点关系在节点树中导航。
。。。。。。。。。。。
HTML DOM 节点列表
getElementsByTagName() 方法返回节点列表。节点列表是一个节点数组。
注意:下标号从 0 开始。
。。。。。。。。。。。
HTML DOM 节点列表长度
length 属性定义节点列表中节点的数量。
。。。。。。。。。。。
导航节点关系
您能够使用三个节点属性:parentNode、firstChild 以及 lastChild ,在文档结构中进行导航。
firstChild 属性可用于访问元素的文本
。。。。。。。。。。。
DOM 根节点
这里有两个特殊的属性,可以访问全部文档
document.documentElement - 全部文档
document.body - 文档的主体
。。。。。。。。。。。
childNodes 和 nodeValue
除了 innerHTML 属性,您也可以使用 childNodes 和 nodeValue 属性来获取元素的内容。
网页标题:HTMLDOM定义了访问和操作HTML文档的标准方法。
文章位置:
http://njwzjz.com/article/jssjop.html