在js中獲取元素節點有DOM對應的方法如getElementsByTagName()等等。。對於獲取子元素還有另外一種獲取方法ChildNodes
不過ChidNodes在高級瀏覽器除(IE6-8)里面來說是"不太正常"的,因為它除了獲取到了元素節點的同時也獲取到了文本節點,這就是傳說中的買一送一?不過,這個送一的活動咱們不想要的時候可以和nodeType結合,就可以進行篩選。代碼如下
當然,這個判斷是針對高級瀏覽器。IE6-8是不要進行nodeType的判斷的,因為它本來獲取的就是只有元素節點,沒有文本節點。
除了childNodes這種獲取子元素的方法以外,還有一個方法叫做children,這個是不要判斷兼容性的,IE6-8,其他高級瀏覽器都支持。具體用法如下:
再說說跟這兩個相關的獲取節點的方法:firstChild(firstElementChild)[第一個子元素]、lastChild(lastElementChild)[最后一個子元素]、nextSibling(nextElementSibling)[同級的下一個元素]、previousSibling(previousElementSibling)[同級的上一個元素]、parentNode[父節點]
其中括號里面的是在高級瀏覽器中獲取元素節點的方法,括號外(IE6-8)和括號內(高級瀏覽器)就相當於是解決一個兼容性問題吧。都比較簡單,我就不舉例子了。