Skip to content


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

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 ();

Posted in JavaScript/DOM/XML, 技术.


No Responses (yet)

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.