在使用childNodes時,發現需要刪除的元素多於1時,會出現無法全部刪除的情況。谷歌以後發現,該屬性返回的子節點集合是實時更新的,也就是說,在for迴圈中,當刪除第一個子節點之後,第二次刪除的是原子節點集合中的第三個元素。故需要刪除全部子節點時,使用 在MDN中查了一下,childNodes返回 ...
在使用childNodes時,發現需要刪除的元素多於1時,會出現無法全部刪除的情況。谷歌以後發現,該屬性返回的子節點集合是實時更新的,也就是說,在for迴圈中,當刪除第一個子節點之後,第二次刪除的是原子節點集合中的第三個元素。故需要刪除全部子節點時,使用
while(node.childNodes.length>0){ node.removeChild(node.childNodes[0]); }
在MDN中查了一下,childNodes返回的是NodeList對象,該NodeList對象是實時更新的(有些NodeList對象不是實時更新的),所以才會引起上述現象。