NodeList

js中全部的NodeList類型都是動態變化的,即NodeList中的內容發生變化,會立刻再NodeList中發生反映app

相似的還有HTMLCollection類型get

好比childNodesio

getElements獲得的內容變量

querySelectorAll獲得的內容List

舉例說明循環

<ul id="a">程序

<li></li>query

<li></li>document

<li></li>

</ul>

var ul=document.getElementsByID("a")

for(var i=0;i<ul.childNodes.length;i++)

{

var li=document.createElement("li");

ul.appendChild(li)

}

上面的循環永遠不會結束,由於ul的childNodes是一個NodeList類型,是動態變化的,每次增長了一個新的li,ul的childNodes的長度就會馬上加1

因此i永遠不會達到ul.childNodes.length的值,因此循環永遠不會結束。這個例子很清晰的反應了NodeList的動態變化

若是想實現上面的程序,能夠這樣改

var ul=document.getElementsByID("a")

for(var i=0,var len=ul.childNodes.length;i<len;i++)

{

var li=document.createElement("li");

ul.appendChild(li)

}

這樣len是一個肯定的變量,就能夠正確的循環結束

相關文章
相關標籤/搜索