递归删除节点的函数

2009年04月19日

如果要递归的删除一个DOM节点下的所有子节点,可以用如下的函数:

?View Code JAVASCRIPT
function removeChildrenRecursively(node) {
    if (!node) return;
    while (node.hasChildNodes()) {
        removeChildrenRecursively(node.firstChild);
        node.removeChild(node.firstChild);
    }
}

在使用过程中发现,用设置”innerHTML”为空也可以起到相同的效果。如:

?View Code JAVASCRIPT
node.innerHTML="";

在无需递归删除的时候使用后者会造成一些困扰,需要注意,可以只用删除第一层子节点的函数,如:

?View Code JAVASCRIPT
function removeAllChildren(node) {
    if (!node) return;
    while (node.hasChildNodes()) {
        node.removeChild(node.firstChild);
    }
}




标签: , ,
归类: JAVASCRIPT

Leave a Reply

*

您也可以使用微博账号登陆