2011-09-28 72 views
1

只试图删除表格,但循环不会删除所有行。 我已经使用alert来确定它是通过id访问的正确元素。 它确实删除了一些行,但不是全部,只是块。 控制台报告:DOM异常1,DOM异常8while循环无法正确迭代以删除表格行

function removeThis(unsetElement) 
{ unsetElement.parentNode.removeChild(unsetElement); } 
+0

我编辑了原来的代码,只是建议删除表。 YAY我! Thx帮助所有人。 – Richard

+1

您至少不应删除问题中的原始代码,否则答案对其他读者不再适用。 –

回答

1

当你删除行,他们的指数变化;您需要从顶部开始循环,即

i=rowCounter-1; 
while(i>=0){unsetTable.deleteRow(i);i--;} 

然而更好的想法是清除整个表格;行将被垃圾收集。

+0

好的。我已经用你的建议更新了脚本,没有行被删除,并且在控制台中报告了DOM Exception 1。 – Richard

+0

如果我可以删除表格我会,但那也不工作,我想我不得不删除孩子节点或什么。我真的只是希望他们做了一个前端php。 – Richard

+0

@理查德对不起,现在应该工作。删除整个表格有什么问题? – mbq

1

另一种解决方案可能是使用特殊的-1索引,该索引删除最后一行。

var i = thisTrAry.length; 

while(i--) { 
    unsetTable.deleteRow(-1); 
} 

但是,如果您无论如何删除整个表(在您的最后一行),那么没有必要先删除行。

+0

+1'-1'是一个很酷的诀窍:) – alex