JavaScript/DOM/XML & 技术 27 Nov 2006 01:37 pm
js删除dom结点时遇到的问题
当你使用for来循环node.length,并删除其中结点时会删不干净。
- for(var i=0;i var field=lista.childNodes.item(i);
- if (field.className == 'area')
- {
- alert('title'+field.title);
- lista.removeChild(field);
- }
- }
因为当你删除一个结点时,结点的索引会-1,所以lista.childNodes.length也会相应-1。
测试代码:
cc
列出了NodeList 对象所提供的属性和方法:
| NodeList 属性 | 描述 | 范例 |
| length | 包含在节点集合中的节点个数 | NodeCount =Element.childNodes.length; |
| item(0-based-index)(default method) | 依所传入的索引值,传回你所要的节点,而索引值零(0)表第一个节点代 | SecondChild=Element.childNodes.item (1) ;or SecondChild=Element.childNodes (1); |
| reset () | 设定内部指针,指向节点集合中第一个节点位置之前,所以当下个nextNode 被呼叫时,将传回第一个节点 | Element.childNodes.reset (); |
| nextNode () | 传回节点集合中的下一个节点,是籍由内部指针的标记来达到 | Element.childNodes.reset ();FirstNode=Element.childNodes.nextNode (); |