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