元素可以有任意數目的子節點和后代節點,因為元素可以是其他元素的子節點。元素的childNodes屬性中包含了它的所有子節點,這些子節點有可能是元素、文本節點、注釋或處理指令。
不同瀏覽器在看待這些節點方面存在顯著的不同,以下面的代碼為例:
ltem l
ltem 2
ltem 3
對于這段代碼,
元素在任何瀏覽器中都會包含3個子節點。如果需要通過childNodes屬性遍歷子節點,那么一定不要忘記瀏覽器間的這一差別。這意味著在執行某項操作以前,通常都要先檢
查一下nodeTpye屬性,如下面的例子所示:
for (var i=0;len=element.childNodes.length;i if (element. childNodes[i].nodeType==1){
//執行某些操作
}
}
這個例子會循環遍歷特定元素的每一個子節點,然后只在子節點的nodeType等于1(表示是元素節點)的情況下,才會執行某些操作。
如果想通過某個特定的標簽名取得子節點或后代節點該怎么辦呢?實際上,元素也支持getElement sByTagName()方法。在通過元素調用這個方法時,除了搜索起點是當前元素之外,其他
方面都跟通過document調用這個方法相同,因此結果只會返回當前元素的后代。例如,要想取得前面
元素中包含的所有
元素,可以使用下列代碼:
var ul=document. getElementByld(”myList”);
var items=ul. getElementsByTagName(”li”);
要注意的是,這里
的后代中只包含直接子元素。不過,如果它包含更多層次的后代元素,那么各個層次中包含的
元素也都會返回。
本文僅限內部技術人員學習交流,不得作于其他商業用途.希望此文對廣技人員有所幫助。原創文章出自:南昌網站建設公司-百恒網絡 http: //www.527701.com 如轉載請注明出處!