關於childNodes的length的問題

2022-09-01 16:18:17 字數 306 閱讀 2898

這個時候如果 document.getelementbyid('ul1').childnodes.length;  得到的結果是5,而不是2

因為它把之間的換行也當成是node

嚴格來說這也是正確的,節點分為元素節點(標籤)和文字節點(純文字),換行和空格實際上是文字節點。

這個問題在chrome以及高版本ie會出現,反而在ie7不出現,ie7對dom的支援比較差,反而避免了這個問題。

要解決這個問題,需要用的nodetype區分。nodetype是1表示元素節點,也就是我們想要的,nodetype是3表示文字節點,也就是這裡不想要的。

關於childNodes的刪除

在使用childnodes時,發現需要刪除的元素多於1時,會出現無法全部刪除的情況。谷歌以後發現,該屬性返回的子節點集合是實時更新的,也就是說,在for迴圈中,當刪除第乙個子節點之後,第二次刪除的是原子節點集合中的第三個元素。故需要刪除全部子節點時,使用 while node.childnodes....

children和childNodes 的區別

1,childnodes 屬性,標準的,它返回指定元素的子元素集合,包括html節點,所有屬性,文字。可以通過nodetype來判斷是哪種型別的節點,只有當nodetype 1時才是元素節點,2是屬性節點,3是文字節點。有些人錯誤的使用 去取該集合元素,下表列出各瀏覽器對childnodes i 的...

childNodes中nodeType的12種型別

element node 1 元素節點 attribute node 2 屬性節點 text node 3 文字節點 cdata section node 4 cdata 區段 entity reference node 5 實體引用元素 entity node 6 實體 processing in...