DOM屬性及操作

DOM屬性及操作

DOM(文檔對象模型)是針對HTML和XML文檔的一個API(應用程序編程接口)

一、同胞節點

previousSibling屬性和nextSibling屬性

if(someNode.nextSibling===null){
 alert("Last node in the parent's childNodes list.");
}else if(someNode.previousSibling===null){
 alert("First node in the parent's childNodes list.");
}

二、appendChild()

appendChild(),用於向childNodes列表的末尾添加一個節點。

var returnedNode=someNode.appendChild(newNode);
alert(returnedNode==newNode); //true
alert(someNode.lastChild==newNode); //true

如果傳入到appendChild()中的節點已經是文檔的一部分了,那結果就是將該節點從原來的位置移到新位置。如果在調用appendChild()時傳入了父節點的第一個子節點,那麼該節點就會成爲父節點的最後一個子節點。

//someNode有多個子節點
var returnedNode=someNode.appendChild(someNode.firstChild);
alert(returnedNode==someNode.firstChild); //false
alert(returnedNode==someNode.lastChild); //true

三、insertBefore()

這個方法接受兩個參數:要插入的節點和作爲參數的節點。

//插入後成爲最後一個子節點
returnedNode=someNode.insertBefore(newNode,null);
alert(newNode==someNode.lastChild); //true

//插入後成爲第一個子節點
var returnedNode=someNode.insertBefore(newNode,someNode.firstChild);
alert(returnedNode==newNode); //true
alert(newNode==someNode.firstChild); //true

//插入到最後一個子節點前面
returnedNode=someNode.insertBefore(newNode,someNode.lastChild);
alert(newNode==someNode.childNodes[someNode.childNodes.length-2]); //true

四、replaceChild()

replaceChild()方法接受的兩個參數是:要插入的節點和要替換的節點

//替換第一個子節點
var returnedNode=someNode.replaceChild(newNode,someNode.firstChild);

//替換最後一個子節點
returnedNode=someNode.replaceChild(newNode,someNode.lastChild);

五、removeChild()

這個方法接受一個參數,即要移除的節點

//移除第一個子節點
var formerFirstChild=someNode.removeChild(someNode.firstChild);
//移除最後一個子節點
var formerLastChild=someNode.removeChild(someNode.lastChild);

六、cloneNode()

cloneNode()用於創建調用這個方法的節點的一個完全相同的副本。cloneNode()方法接受一個布爾參數值,表示是否執行深複製。參數爲true,執行深複製,也就是複製節點及其整個子節點數,參數爲false,執行淺複製,即複製節點本身。
假設有下面的HTML代碼:

<ul>
 <li>item 1</li>
 <li>item 2</li>
 <li>item 3</li>
</ul>

如果我們已經將ul元素的引用保存在了變量myList中,那麼通常下面代碼就可以看出使用cloneNode()方法的兩種模式。

var deepList=myList.cloneNode(true);
alert(deepList.childNodes.length); //3(IE<9)或7(其他瀏覽器)

var shallowList=myList.cloneNode(false);
alert(shallowList.childNodes.length); //0

七、normalize()

當在某個節點上調用該方法時,就會在該節點的後代節點中查找,如果查到空文本節點,則刪除它,如果找到相鄰的文本節點,則將它們合併爲一個文本節點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章