经过近一个星期,总算把w3chool上的HTML DOM的实例差不多看了一遍,因为本身对其中的很多都用过,所以看起来也很快,现在就再系统的回顾下HTML DOM的一些概念和基础的东西,大部分都是从w3school上看到的
什么是DOM
DOM是w3c(万维网联盟)的标准
DOM定义了访问HTML和XML的标准
"W3C文档对象模型(DOM)是中立于语言和平台的接口,它允许程序和脚本动态的访问和更新文档的结构,内容和样式"
W3C DOM 标准被分为 3 个不同的部分:
● 核心DOM - 针对任何结构化文档的标准模型
● XML DOM - 针对XML文档的标准模型
● HTML DOM - 针对HTML文档的标准模型
ps:DOM是 Document Object Model (文本对象模型)的缩写
什么是XML DOM
XML DOM定义了所有xml元素的对象和属性以及访问他们的方法
如果你想学习XML DOM 可以访问 http://www.w3school.com.cn/xmldom/index.asp
什么是HTML DOM
HTML DOM:
● HTML的标准对象模型
● HTML的标准编程接口
● W3C标准
HTML DOM 定义了所有HTML元素的对象和属性以及访问他们的方法,换句话说,HTML DOM是关于如果获取,删除,修改HTML元素的标准
下面就是针对HTML DOM的一些方法属性的介绍
HTML DOM节点
在HTML DOM中,所有事物都是节点,DOM被视为节点树的HTML
DOM节点
据W3C的HTML DOM标准,HTML文档中的所有内容都是节点
● 整个文档是一个文档节点
● 每个 HTML 元素是元素节点
● HTML 元素内的文本是文本节点
● 每个 HTML 属性是属性节点
● 注释是注释节点
HTML DOM节点树
根据HTML DOM标准,树中的所有节点都可以通过javascript进行访问,所有HTML 元素(节点)均能被修改 也可以 删除 和 新增新的节点
节点父子和同胞
下面的图片展示了节点树的一部分,以及节点之间的关系:
父(parent)、子(child)和同胞(sibling)等术语用于描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。
● 在节点树中,顶端节点被称为根(root)
● 每个节点都有父节点、除了根(它没有父节点)
● 一个节点可拥有任意数量的子
● 同胞是拥有相同父节点的节点
请看下面的 HTML 片段:
DOM 教程DOM 第一课
Hello world!
从上面的 HTML 中:
● 节点没有父节点;它是根节点
●
和 的父节点是 节点● 文本节点 "Hello world!" 的父节点是
节点
并且:
● 节点拥有两个子节点:
和●
节点拥有一个子节点: 节点●
节点也拥有一个子节点:文本节点 "DOM 教程"●
和
节点是同胞节点,同时也是
的子节点并且:
●
元素是 元素的首个子节点●
元素是 元素的最后一个子节点●
元素是 元素的首个子节点
●
元素是
元素的最后一个子节点注意:
DOM 处理中的常见错误是希望元素节点包含文本。
在本例中:
DOM 教程,元素节点 ,包含值为 "DOM 教程" 的文本节点。可通过节点的 innerHTML 属性来访问文本节点的值。
HTML DOM 方法
方法即是我们可以在节点(HTML 元素)上执行的动作。
[b]编程接口[/b]
可通过 JavaScript (以及其他编程语言)对 HTML DOM 进行访问。
所有 HTML 元素被定义为对象,而编程接口则是对象方法和对象属性。
方法是您能够执行的动作(比如添加或修改元素)。
属性是您能够获取或设置的值(比如节点的名称或内容)。
getElementById() 方法返回带有指定 ID 的元素:
例: var element=document.getElementById("intro");
HTML DOM 对象 - 方法和属性
一些常用的 HTML DOM 方法:
● getElementById(id) - 获取带有指定 id 的节点(元素)
● appendChild(node) - 插入新的子节点(元素)
● removeChild(node) - 删除子节点(元素)
一些常用的 HTML DOM 属性:
● innerHTML - 节点(元素)的文本值
● parentNode - 节点(元素)的父节点
● childNodes - 节点(元素)的子节点
● attributes - 节点(元素)的属性节点
下面也是一些常用方法:
下面是一些属性介绍:
innerHTML 属性
获取元素内容的最简单方法是使用 innerHTML 属性。
innerHTML 属性对于获取或替换 HTML 元素的内容很有用。
实例:
Hello World!
var txt=document.getElementById("intro").innerHTML;
document.write(txt);
在上面的例子中,getElementById 是一个方法,而 innerHTML 是属性。
innerHTML 属性可用于获取或改变任意 HTML 元素,包括 和
。nodeName 属性
nodeName 属性规定节点的名称。
● nodeName 是只读的
● 元素节点的 nodeName 与标签名相同
● 属性节点的 nodeName 与属性名相同
● 文本节点的 nodeName 始终是 #text
● 文档节点的 nodeName 始终是 #document
注释:nodeName 始终包含 HTML 元素的大写字母标签名。
nodeValue 属性
nodeValue 属性规定节点的值。
● 元素节点的 nodeValue 是 undefined 或 null
● 文本节点的 nodeValue 是文本本身
● 属性节点的 nodeValue 是属性值
nodeType 属性
nodeType 属性返回节点的类型。nodeType 是只读的。
比较重要的节点类型有:
元素类型 NodeType
元素 1
属性 2
文本 3
注释 8
文档 9