首页 > 代码库 > DOM (JavaScript学习笔记)

DOM (JavaScript学习笔记)

DOM是针对HTML和XML文档的一个API(应用程序接口)。

IE中所有DOM对象都是以COM对象的形式实现的,所以IE中的DOM对象与原生JavaScript对象的行为或活动特点不一致,这个要注意。

1.节点层次

文档节点是每个文档的根节点.<html>元素是根节点的子节点,成为文档元素。文档元素是文档的最外层元素。每个文档只能有一个文档元素。

1.1Node类型

  NODE.ELEMENT_NODE(1)

  NODE.ATTRIBUTE_NODE(2)

  NODE.TEXT_NODE(3)

  NODE.COMMENT_NODE(8)

  NODE.DOCUMENT_NODE(9)

  NODE.DOCUMENT_TYPE_NODE(10)

  NODE.DOCUMENT_FRAGMENT_NODE(11)

(someNode.nodeType==1)用这种方式判断元素的类型,不要用someNode.nodeType == NODE.ELEMENT_NODE,因为IE浏览器不支持

(1)nodeName和nodeValue

如果是元素节点,nodeName为标签名,nodeValue为null

(2)节点关系

childNodes属性

每个节点都有一个childNodes属性,其中保存着一个NodeList对象,是基于DOM结构动态执行查询的结果。访问NodeList中的元素,可以用[序号]或者用someNode.childNodes.item(序号)两种方法。

NodeList是类数组对象,可以转换成数组:

var nodeArray=Array.prototype.slice.call(someNode.childNodes,0);

(在IE中,需要手动枚举所有成员)

parentNode属性

nextSibling属性

previousSibling属性

firstChild属性

lastChild属性

hasChildNodes()方法:在节点包含一个或者多个子元素的时候会返回true

ownerDocument属性:指向表示整个文档的文档节点

(3)操作节点

appendChild(newNode)方法:向childNodes列表的末尾添加一个节点。若是传入的node在childNodes列表中有,会将这个node从原来的位置移动到最后。返回值为newNode

insertBefore(newNode,refNode)方法:在参考node前插入新的node,若参考节点为null则和appendChild()方法一样。返回值是newNode

replaceChild(插入节点,被替换节点)方法:删除被替换节点,插入节点占据其位置。返回值是被替换节点。即被替换节点仍在文档中,不过没有了自己的位置~~~

removeChild(被删除的节点)方法:返回被删除的节点,也是依然在文档中,但是没有了自己的位置

这四个方法都要取得父元素

(4)其它方法

someNode.cloneNode():参数为true,拷贝元素和子元素;false 拷贝元素本身

someNode.normalize():删除空的文本节点,合并两个相邻的文本节点

 

DOM (JavaScript学习笔记)