DOM可以将任何HTML或XML文档描绘成一个有多层节点构成的结构,即在HTML中所有内容都是节点。文档节点是每个文档的根节点,文档节点有一个子节点,称为文档元素。每个文档只能有一个文档元素。在HTML中,文档元素是<html>元素,其他所有元素都包含在文档元素中。
JavaScript中实现了一个 Node 类型来描述DOM节点,JavaScript中的所有节点类型都是继承自Node类型。一共有12中节点类型,Node类型定义了12个数值常量来表示,如下所示,其中括号中表示的是常量的值,除了IE都可以使用下列常量名访问这些值。
Node.ELEMENT_NODE(1); //元素节点 Node.ATTRIBUTE_NODE(2); // 属性节点 Node.TEXT_NODE(3); // 文本节点 Node.CDATA_SECTION_NODE(4); // Node.ENTITY_REFERENCE_NODE(5); // Node.ENTITY_NODE(6); // Node.PROCESSING_INSTRUCTION_NODE(7);// Node.COMMENT_NODE(8); // Node.DOCUMENT_NODE(9); // Node.DOCUMENT_TYPE_NODE(10); // Node.DOCUMENT_FRAGMENT_NODE(11); // Node.NOTATION_NODE(12); //
节点的属性和方法:
属性/方法 | 说明 |
nodeType | 节点类型,返回类型数值 |
nodeName | 节点名字,对于元素节点,返回的是元素的标签名 |
nodeValue | 节点值,对于元素节点,返回null |
childNodes |
子节点,返回一个NodeList对象 |
parentNode | 父节点 |
previousSibling | 前面一个同胞节点 |
nextSibling | 后面一个同胞节点 |
firstChild | 第一个子节点 |
lastChild | 最后一个子节点 |
hasChildNodes() | 如果有子节点,返回true,反之,false |
appendChild(newNode) | 向childNodes列表末尾添加一个节点 |
insertBefore(newNode,targetNode) | 在目标节点前插入新节点,如果targetNode为null,新节点成为最后一个节点 |
replaceChild(newNode,targetNode) | 用新节点替换目标节点 ,替换后,被替换的节点仍在文档中,但没有文档位置 |
removeChild(targetNode) | 移除目标节点 ,移除后,被移除的节点仍在文档中,但没有文档位置 |
cloneNode(isDeep) | 是否深度复制节点 |
normalize() | 处理文档树的文本节点,删除空文本节点,或合并相邻的文本节点成为一个文本节点 |
NodeList是一种类似数组的对象,用于保存一组有序的节点,它有 length 属性,可以通过方括号语法来访问,也可以用item()方法。
原文:https://www.cnblogs.com/zhanglw456/p/10485163.html