首页 > JS removeChild 删除全部,却删除做不了,为什么?

JS removeChild 删除全部,却删除做不了,为什么?

为什么不能全部删除,而且第一次删除的是2和4,偶数。
我想一次全部删除要怎么做。
只适配WEBKI

<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>

function test(){
    var li = document.getElementsByTagName('li');
    for(var i = 1; i < li.length; i++){
        li[i].parentNode.removeChild(li[i]);
    }
}

function test() {
    var li = document.getElementsByTagName('li');
    while(obj = li[0]){
        obj.remove();
    }
}

var li = document.getElementsByTagName('li');
返回的li集合对象是一个动态绑定的,而非静态绑定。
也就是说你每删除一个子元素,li的大小就会发生变化
你共有5个子元素
你从第2个开始删除
i=1->长度变为4->i为2 ,2<4,继续删除 <li>2</li>被删除
i=2->长度变为3->i为3 ,3<3,不能够继续删除 <li>4</li>被删除
也就是你只删除了2个元素

访问为从尾部开始删除

function test(){
    var li = document.getElementsByTagName('li');
    while(li.length!=0){
        li[li.length-1].parentNode.removeChild(li[li.length-1]);
    }
}
【热门文章】
【热门文章】