1. insertBefore
//將newNode添加到referenceNode前州弟,作為parentNode的子節(jié)點(diǎn)柴梆。
var insertedNode = parentNode.insertBefore(newNode, referenceNode);
注:
(1)如果referenceNode==null
(null
或undefined
)塌忽,則newNode
將插入到parentNode
的所有子節(jié)點(diǎn)末尾毙玻。相當(dāng)于, appendChild
速和。
(2)referenceNode
不是可選參數(shù)歹垫,必須提供,即使為null
颠放。
(3)如果newNode
是文檔中已有的元素排惨,則insertBefore
是對(duì)該元素的剪切操作。
(4)沒有insertAfter
函數(shù)碰凶,但是可以用以下方式模擬
parentNode.insertBefore(newNode,referenceNode.nextSibling);
//其中暮芭,如果referenceNode是最后一個(gè)子元素,則referenceNode.nextSibling===null欲低。
2. cloneNode
//cloneNode返回node的一個(gè)副本
var dupNode = node.cloneNode(deep);
注:
<u></u>deep
是可選參數(shù)辕宏,如果deep
是一個(gè)真值,則表示復(fù)制所有的后代元素砾莱,否則只復(fù)制當(dāng)前node
元素瑞筐。
3. contains
//返回一個(gè)布爾值,表明otherNode是否node的后代元素腊瑟。
node.contains(otherNode)
注:
該方法判斷的是所有后代元素面哼,不止是子元素。
4. normalize
//規(guī)范化給定node的所有子節(jié)點(diǎn)樹扫步,即,刪除空TextNode匈子,合并相鄰的TextNode
node.normalize()
例如:
var wrapper = document.createElement("div");
wrapper.appendChild(document.createTextNode("Part 1 "));
wrapper.appendChild(document.createTextNode("Part 2 "));
// At this point, wrapper.childNodes.length === 2
// wrapper.childNodes[0].textContent === "Part 1 "
// wrapper.childNodes[1].textContent === "Part 2 "
wrapper.normalize();
// Now, wrapper.childNodes.length === 1
// wrapper.childNodes[0].textContent === "Part 1 Part 2 "