Dom

nodeType节点类型

nodeName 和 nodeValue 属性

nodeName中保存的始终都是元素的标签名

childNodes

每个节点都有一个childNodes 属性,其中保存着一个 NodeList 对象。NodeList是一种类数组 对象,用于保存一组有序的节点,可以通过位置来访问这些节点。
每个节点都有一个parentNode 属性,该属性指向文档树中的父节点。包含在childNodes列表中 的所有节点都具有相同的父节点,因此它们的 parentNode 属性都指向同一个节点。此外,包含在 childNodes 列表中的每个节点相互之间都是同胞节点。通过使用列表中每个节点的 previousSiblingnextSibling 属性,可以访问同一列表中的其他节点。列表中第一个节点的 previousSibling 属性 值为 null,而列表中最后一个节点的nextSibling 属性的值同样也为 null
父节点的 firstChildlastChild属性分别指向其 childNodes列表中的第一个和最后一个节点。
所有节点都有的一个属性是 ownerDocument,该属性指向表示整个文档的文档节点。这种关 系表示的是任何节点都属于它所在的文档,任何节点都不能同时存在于两个或更多个文档中。通过这个 属性,我们可以不必在节点层次中通过层层回溯到达顶端,而是可以直接访问文档节点

方法

创建元素

createElement()
这个方法只接受一个参数,即要创建元素的标签名。

createTextNode()创建新文本节点

创建新文本节点,这个方法接受一个参数——要插入节点 中的文本

createAttribute()创建新的特性节点

规范化文本节点(合并)

如果 在一个包含两个或多个文本节点的父元素上调用 normalize()方法则会将所有文本节点合并成一个 节点,结果节点的 nodeValue 等于将合并前每个文本节点的 nodeValue 值拼接起来的值。

var attr = document.createAttribute("align");
attr.value = "left";
element.setAttributeNode(attr);

分割文本节点

Text类型提供了一个作用与normalize()相反的方法:splitText()

添加节点appendChild()||insertBefore()

最常用的方法是appendChild(),用于向childNodes 列表的末尾添加一个节点
如果传入到appendChild()中的节点已经是文档的一部分了,那结果就是将该节点从原来的位置 转移到新位置。即使可以将 DOM 树看成是由一系列指针连接起来的,但任何 DOM 节点也不能同时出 现在文档中的多个位置上。因此,如果在调用 appendChild()时传入了父节点的第一个子节点,那么 该节点就会成为父节点的最后一个子节点
如果需要把节点放在childNodes 列表中某个特定的位置上,而不是放在末尾,那么可以使用 insertBefore()方法。这个方法接受两个参数:要插入的节点和作为参照的节点。插入节点后,被插 入的节点会变成参照节点的前一个同胞节点(previousSibling),同时被方法返回。如果参照节点是 null,则 insertBefore()appendChild()执行相同的操作

DocumentFragment类型

假设我们想为