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);
}