首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
TestSmirk
V2EX  ›  JavaScript

javascript for 循环删除 html 元素和 interval 删除有什么不同?

  •  
  •   TestSmirk · 2017-10-17 09:52:28 +08:00 · 2198 次点击
    这是一个创建于 831 天前的主题,其中的信息可能已经有所发展或是发生改变。

    interval 删除 这个是成功删除的.

    function removeIds(id) {
    
        var  num = document.querySelectorAll(id).length;
        var j = setInterval(function () {
            if(num>0){
                num--;
                document.querySelector(id).remove();
            }else {
               clearInterval(j);
            }
        })
    }
    

    for 循环删除(这个是失败的)

    var classNames = document.getElementsByClassName("classname");
        for(var i=0;i<classNames.length; i++){
            classNames[i].remove();
        }
    

    请问有什么不同吗.为什么 for 删不掉(删掉的是第 0 个).而 interval 却能删掉.

    第 1 条附言  ·  2017-10-17 12:11:20 +08:00
    感谢大家的回复,不了解 js 这种东西.今天学到很多东西.
    第 2 条附言  ·  2017-10-18 10:26:46 +08:00
    基础不好.>_<
    12 回复  |  直到 2017-10-18 13:27:26 +08:00
    chairuosen
        1
    chairuosen   2017-10-17 09:55:37 +08:00   ♥ 1
    for 循环最后打印 classNames.length 你就知道了
    flowfire
        2
    flowfire   2017-10-17 10:09:46 +08:00   ♥ 1
    var length = classNames.length
    for(var i=0;i<length ; i++){
    classNames[0].remove();
    }
    morethansean
        3
    morethansean   2017-10-17 10:11:15 +08:00   ♥ 1
    楼主操作骚得不知道怎么吐槽 23333 ……你把 setInterval 改成 for 一样能删啊……
    做实验要对比,除了对比参数外还有别的变量是怎么回事……一个是 NodeList 一个 HTMLCollection ……
    flowfire
        4
    flowfire   2017-10-17 11:22:19 +08:00
    @morethansean #3 23333 一波骚操作。这个方法可以用来删除奇数节点
    daisyxdx
        5
    daisyxdx   2017-10-17 12:04:53 +08:00   ♥ 1
    傻孩子,classNames 的 length 是会变的啊
    lianyue
        6
    lianyue   2017-10-17 12:13:18 +08:00 via iPhone
    哈哈哈哈
    enginex
        7
    enginex   2017-10-17 12:30:42 +08:00
    querySelector 返回 no-live collection
    shangfabao
        8
    shangfabao   2017-10-17 14:13:59 +08:00
    你倒序删除试试?
    renminghao
        9
    renminghao   2017-10-17 18:06:09 +08:00
    classNames[i--].remove();
    SourceMan
        10
    SourceMan   2017-10-17 18:13:43 +08:00
    说一下:这不能归结于不了解 js
    chenyu8674
        11
    chenyu8674   2017-10-18 09:25:09 +08:00
    LZ 是基本功问题,JS 表示这锅我不背
    wuzhizhemu569
        12
    wuzhizhemu569   2017-10-18 13:27:26 +08:00 via Android
    这个与编程语言无关
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   837 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 23:27 · PVG 07:27 · LAX 15:27 · JFK 18:27
    ♥ Do have faith in what you're doing.