本文實例講述了JavaScript遍歷DOM元素的常見方式。分享給大家供大家參考,具體如下:
對于元素之間的空格,IE9以及之前的版本不會返回文本節點,,其他的瀏覽器會返回文本節點,所以我們在使用firstChild,lastChild時會導致行為不一致。
DOM中為元素新增了下面幾個屬性:
childElementCount
:返回子元素(不包括文本節點和注釋)的數量;
firstElementChild
:firstChild的元素版;
lastElementChild
:lastChild的元素版;
previousElementSibling
和nextElementSibling
對應著previousSibling
,nextSibling
的元素版
假設html如下,我們想遍歷出div中的所有元素節點:
一般來說,區別元素節點,屬性節點,文本節點的通用方式是判斷該節點的nodeType。
常見的幾種nodeType:
元素節點:1,
屬性節點:2,
文本節點:3,
注釋節點:8,
……
<div id="list"> <p>hello</p> <span>world</span> <em>cookieParse()</em></div>
方式1:用firstChild
,lastChild
進行元素遍歷:
var list = document.getElementById('list');var child = list.firstChild;console.log(list.nextSibling)while(child != list.lastChild){ if(child.nodeType == 1){ console.log( child ); } child = child.nextSibling;}
可得如下運行結果:
方式2:使用firstElementChild
,nextElementSibling
var list = document.getElementById('list');var child = list.firstElementChild;while(child){ console.log( child ); child = child.nextElementSibling;}
可得如下運行結果:
希望本文所述對大家JavaScript程序設計有所幫助。
新聞熱點
疑難解答