DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口)
1. Node类型
NodeType | Named Constant |
---|---|
1 | ELEMENT_NODE |
2 | ATTRIBUTE_NODE |
3 | TEXT_NODE |
4 | CDATA_SECTION_NODE |
5 | ENTITY_REFERENCE_NODE |
6 | ENTITY_NODE |
7 | PROCESSING_INSTRUCTION_NODE |
8 | COMMENT_NODE |
9 | DOCUMENT_NODE |
10 | DOCUMENT_TYPE_NODE |
11 | DOCUMENT_FRAGMENT_NODE |
12 | NOTATION_NODE |
2.节点层次
-
nodeName和nodeValue属性
要了解节点的具体信息,可以使用nodeName和nodeValue这两个属性。这两个属性的值完全取决于节点的类型。在使用这两个值以前,最好是像下面这样先检测一下节点的类型。
-
节点关系
每个节点都有一个childNodes属性,其中保存着一个NodeList对象。NodeList是一种类数组对象,用于保存一组有序的节点,可以通过位置来访问这些节点。
注意:虽然可以通过方括号语法来访问NodeList的值,而且这个对象也有length属性,但它并不是Array的实例
firstChild() // 获取父节点第一个子节点
lastChild() // 获取父节点最后一个子节点
hasChildNodes() // 是否含有子节点 ,包含一或多个子节点的情况下返回true
-
操作节点
1.appendChild():用于向childNodes列表的末尾添加一个节点并返回新增的节点。
2.insertBefore():这个方法接受两个参数:要插入的节点和作为参照的节点
3.replaceChild():接受的两个参数是:要插入的节点和要替换的节点。要替换的节点将由这个方法返回并从文档树中被移除,同时由要插入的节点占据其位置。
4.removeChild():接受一个参数,即要移除的节点,被移除的节点将成为方法的返回值。
要使用这几个方法必须先取得父节点(使用parentNode属性),另外,并不是所有类型的节点都有子节点,如果在不支持子节点的节点上调用了这些方法,将会导致错误发生
有两个方法是所有类型的节点都有的:
5.cloneNode():用于创建调用这个方法的节点的一个完全相同的副本。
接受一个布尔值参数,表示是否执行深复制
- 在参数为true的情况下,执行深复制,也就是复制节点及其整个子节点树
- 在参数为false的情况下,执行浅复制,即只复制节点本身。
6.normalize():这个方法唯一的作用就是处理文档树中的文本节点
来源:《JJavaScript高级程序设计》
网友评论