2011-09-28 77 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