var p = document.getElementById('test-list');
    for (var i = 0; i < p.children.length; i++) {
        if (p.children[i].innerHTML === 'Swift'
                || p.children[i].innerHTML === 'ANSI C'
                || p.children[i].innerHTML === 'DirectX') {
            p.removeChild(p.children[i]);
        }
    }

刚好这三个处在1,3,5三个位置上,不然可能会出错

当我们用如下代码删除子节点时:

var parent = document.getElementById('parent'); parent.removeChild(parent.children[0]); parent.removeChild(parent.children[1]); // <-- 浏览器报错 浏览器报错:parent.children[1]不是一个有效的节点。原因就在于,当<p>First</p>节点被删除后,parent.children的节点数量已经从2变为了1,索引[1]已经不存在了。

因此,删除多个节点时,要注意children属性时刻都在变化。


  • 1

Reply