JavaScript/DOM/XML & 技术 27 Nov 2006 01:37 pm

js删除dom结点时遇到的问题

当你使用for来循环node.length,并删除其中结点时会删不干净。

  1. for(var i=0;i  var field=lista.childNodes.item(i);
  2.   if (field.className == 'area')
  3.   { 
  4.    alert('title'+field.title);
  5.    lista.removeChild(field);
  6.   }
  7. }

因为当你删除一个结点时,结点的索引会-1,所以lista.childNodes.length也会相应-1。

测试代码:

cc

count|
add|
del

列出了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 ();

Trackback This Post | Subscribe to the comments through RSS Feed

Leave a Reply