- 創建、插入和刪除節點
創建、插入和刪除節點
1.創建節點
creatElement:創建元素節點
creatAttribute:創建屬性節點,用法有點復雜,可以用setAttribute實現
creatTextNode:創建文本節點,用法有點復雜,可以用innerText實現
var image = document.createElement(img)
image.src = 'state/2.png'
2.復制節點
cloneNode()方法克隆所有屬性以及它們的值。如果您需要克隆所有后代,請把 deep 參數設置 true,否則設置為 false。
例:
var clone = document.getElement('list').lastChild.cloneNode(true)
document.getElement('list1').appendChild(clone)
3.插入節點
appendChild()和insertBefore()
appendChild()是在需要插入的Element節點上調用的,它插入指定的節點使其成為那個節點的最后一個子節點,接收一個參數。
insertBefore()接收兩個參數,第一個參數是待插入的節點,第二個參數是已存在的節點,新節點將插入該節點的前面。該方法是在新節點的父節點上調用,方法的第二個參數必須是該父節點的子節點。如果傳遞null作為第二個參數,insertBefore的行為類似appendChild(),它將節點插入在最后。
4.刪除和替換節點
removeChild()方法是從文檔數中刪除一個節點,該方法在待刪除的父節點上調用,并將需要刪除的子節點作為參數傳遞給它。例:
n.parentNode.removeChild(n)
replaceChild()方法是刪除一個子節點并用一個新的節點替換它。在父節點上調用該方法,第一個參數是新節點,第二個參數是需要替換的節點。
5.DocumentFragment
DocumentFragment是一種特殊的Node,它作為其他節點的臨時容器。將這樣創建
var frag = document.creatDocumentFragment()
DocumentFragment的特殊之處在于它使得一組節點被當做一個節點看待:比如給appendChild()傳遞一個DocumentFragment,其實是將該文檔片段的所有子節點插入到文檔中,而不包括片段本身。例:
var f = document.creatDocumentFragment()
while(n.lastChild) f.appendChild(n.lastChild)
n.appendChild(f)