我正试图创建一个从网站上删除facebook和twitter的greasemonkey脚本。 在我的情况下9gag。 我看了,我需要隐藏课程:
1. 'social-action' (works fine)
2. 'badge-sticky-social sticky-social' (every second post)
3. 'post-afterbar-a in-list-view' (every second post)
我的代码到目前为止(不同的类)
(function() {
var ads=document.getElementsByClassName('badge-sticky-social sticky-social');
for (var i=0; i<ads.length; i++) {
ads[i].parentNode.removeChild(ads[i]);
}
})()
我不知道为什么它只适用于一半的帖子而不是全部
答案 0 :(得分:0)
因为您正在删除正在迭代的元素,所以迭代最终会出错。也就是说,你看第一个,然后删除它,然后尝试查看第二个。但是第二个现在是第一个,所以一个被跳过。
正如CBroe所说,解决方案是将循环从高到低运行,这样你就不会尝试计算已被删除的东西:
for (var i=ads.length-1; i>=0; i--)