微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript 删除功能

如何解决JavaScript 删除功能

我在 JavaScript 中有这样一个函数。使用它我想以一定的时间间隔删除 ol 中的 li 元素,但它实际上不起作用。

function Delete(){
    var node = document.getElementById("parent");
    let i = 1;
    
    while(node.firstChild){
        setInterval(function() {
        node.removeChild(node.lastChild);
        },200);
    }
}

请问有什么问题吗???

解决方法

您使用 while 循环进行了无限循环。同样 setInterval 做的完全不同,但是 setIntervalsetTimeout 将在下一个 event loop 中执行,因此 node.firstChild 将始终是两种情况都一样。

您想这样做:

    var node = document.getElementById("parent");
    let i = 0;
    
    for(const li of node.childNodes)
    {
        setTimeout(function() {
            node.removeChild(node.lastChild);
        },300 * i++); // I suppose you wanted to do this with the i 
    }
,

您使用的设置间隔有问题从未说明何时清除间隔,而您的 while 只是无用,因为 while 循环终止设置间隔每 200 毫秒后运行一次,它将无限继续 所以我认为这对你有用

    function Delete() {
    var node = document.getElementById("parent");
    let i = 1;
    
    if(node.firstChild){
        let interval =setInterval(function() {
          if(node.lastChild)
              node.removeChild(node.lastChild);
          else
              clearInterval(interval);
        },200);
    }

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。