javascript - JS removeChild 删除全部,却删除做不了,为什么?
PHPz
PHPz 2017-04-10 16:18:36
[JavaScript讨论组]

为什么不能全部删除,而且第一次删除的是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]);
    }
}
PHPz
PHPz

学习是最好的投资!

全部回复(2)
伊谢尔伦

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]);
    }
}
天蓬老师
function test() {
    var li = document.getElementsByTagName('li');
    while(obj = li[0]){
        obj.remove();
    }
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号