使用JS删除所有的脚本元素

5

我尝试从HTML页面中删除所有脚本元素。但出于某种原因,我只能使用以下代码删除其中一半:

function t(){

   var r = document.getElementsByTagName('script');

    for (var i = 0; i < r.length; i++) {

        if(r[i].getAttribute('id') != 'a'){

            r[i].parentNode.removeChild(r[i]);

        }

    }

}

我添加了if条件,以便不删除正在执行的脚本。 我实际上是要创建一个动态的JavaScript禁用程序,用于我的Selenium测试。
1个回答

15

在反向循环中,当您开始删除节点时,计数会发生变化。

var r = document.getElementsByTagName('script');

for (var i = (r.length-1); i >= 0; i--) {

    if(r[i].getAttribute('id') != 'a'){
        r[i].parentNode.removeChild(r[i]);
    }

}

1
该死,我没注意到。谢谢! - Abs
1
你也可以使用 for (var i = r.length; i--; ) { - Felix Kling

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接