function deleteRow(obj) {
var objChilds = obj.children; /* 得到子元素 */
if(objChilds.length != 0) {/* 長度不爲0,開始刪除 */
for(var i = objChilds.length-1; i>=0; i--) {
obj.removeChild(objChilds[i]);
alert("刪除 " + i);
}
}
}
倒着循環刪除,如果寫成
i = 0; i<length; i++
會有問題,每次刪除之後,如下 :
8
7
6
5
4
3
2
1
第一次將8刪除後,變成:
7
6
5
4
3
2
1
i變成1,這時候,JS應該是認爲:
7 的序號爲0, 6的序號爲1,
所以會去刪除 6,而跳過7,依次類推,不能完全刪除子節點;
其他刪除方法 :
function removeChildren(pnode){
var node=pnode.firstChild;
var tmpNode;
while(node!=pnode.lastChild){
tmpNode=node.nextSibling;
pnode.removeChild(node);
node=tmpNode;
}
//記得還要刪除最後一個孩子
pnode.removeChild(pnode.lastChild);
}