2011-09-28 5 views
1

테이블을 제거하려고하지만 루프가 모든 행을 제거하지 않습니다. ID로 올바른 요소인지 확인하기 위해 경고를 사용했습니다. 모든 행을 제거하지는 않지만 청크를 제거합니다. 콘솔 보고서 : DOM 예외 일, DOM 예외 8while 루프가 테이블 행을 제거하기 위해 제대로 반복되지 않음

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

제안 된대로 표를 제거하는 것으로 원본 코드를 편집했습니다. 예 ~! 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

관련 문제