在javascript dom中,删除所有子节点会产生错误

时间:2011-09-01 07:24:08

标签: javascript dom

使用标准例程删除元素中的所有子元素

while( el.lastChild ) el.removeChild( el.lastChild );

产生:未捕获错误:NOT_FOUND_ERR:DOM异常8

for( var i=el.children.length; i; i-- ) el.removeChild( el.children[i-1] );

产生相同的

例行工作99%的时间,但在一个DIV错误中。

如果重要的话,重点不在于DIV。

任何想法如何进行?


发现问题。

在INPUT类型='number'的新代码中,inputmouseout事件创建了change事件,因此字段会正确更新。

在某些情况下,更新项目意味着删除行。

问题在于,一旦删除了行,INPUT的焦点就会丢失,从而产生自己的change事件。当此事件发生时,该行仍然存在,但已失去与其父级的关系。这会生成DOM错误8 - 找不到。

同样,我们遇到了敌人,他们就是我们(谢谢Pogo)。

1 个答案:

答案 0 :(得分:1)

问题是在早期触发器已将其删除后尝试删除该行的触发器。请参阅问题底部的说明