删除父节点下的所有子节点

现在要删除一个父节点下的所有子节点。

删除节点的操作其实类似于FIFO链表的删除操作,把第一个删除掉,第二个节点会补上作为第一个,第三个会补上作为第二个,如此下去,这样节点是索引会随着删除而改变。所以,如果是顺着删除,删除的顺序会是0,2,4等等,如果你不弄清楚,有时候会被搞的莫名奇妙,跳着删除,是吧,然后余下的就不会被删,而且如果子节点较多,这样操作会出错的,弄半天才恍然大悟原来是倒着删还是顺着删这种细微的差别。正确的做法是应该倒着删除。


第一种:  
function removeChildren(pnode){  
var childs=pnode.childNodes;  
for(var i=childs.length-1;i>=0;i--){  
pnode.removeChild(childs.item(i));  
}  
}  
  
第二种:  
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);  
}  
  
后面那种方法的质量还不如第一种,所以一般选择第一种进行删除一个父节点下所有子节点的操作。  








评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值