Javascript 使用Greasemonkey删除列表元素
我读的一篇博客有一些令人讨厌的评论。我想我会试试我的手在Greasemonkey关掉它们 HTML的基本结构很简单-注释如下所示:Javascript 使用Greasemonkey删除列表元素,javascript,greasemonkey,Javascript,Greasemonkey,我读的一篇博客有一些令人讨厌的评论。我想我会试试我的手在Greasemonkey关掉它们 HTML的基本结构很简单-注释如下所示: <li> <cite>user name ...</cite> comment text </li> 这似乎得到了一切,但代价是在评论可能出现的地方留下了巨大的空白 我是一个完全的javascript新手,所以有人能看到明显的我做错了什么吗?您应该能够通过颠倒for循环的顺序并首先从comments数组的末尾
<li>
<cite>user name ...</cite>
comment text
</li>
这似乎得到了一切,但代价是在评论可能出现的地方留下了巨大的空白
我是一个完全的javascript新手,所以有人能看到明显的我做错了什么吗?您应该能够通过颠倒for循环的顺序并首先从comments数组的末尾删除元素来修复它:
for ( var i = comments.length - 1; i >= 0; i-- )
您应该能够通过颠倒for循环的顺序并首先从comments数组的末尾删除元素来修复它:
for ( var i = comments.length - 1; i >= 0; i-- )
您看到的行为是由于
注释是一个错误。当您从DOM中删除注释
引用的元素时,注释
会发生变化(并且其长度
会更新),您的循环将退出窗口
您可以按照@Pat建议的相反顺序循环,或者先通过复制操作从DOM中“取消钩取”节点列表
:
var comments = Array.slice(document.getElementsByTagName('li'));
然后像以前一样继续。您看到的行为是由于注释作为一个。当您从DOM中删除注释
引用的元素时,注释
会发生变化(并且其长度
会更新),您的循环将退出窗口
您可以按照@Pat建议的相反顺序循环,或者先通过复制操作从DOM中“取消钩取”节点列表
:
var comments = Array.slice(document.getElementsByTagName('li'));
然后像以前一样继续。我想知道这是否是个问题,所以我尝试创建一个要删除的注释数组,然后从中删除FROM,但没有效果。但到目前为止,这看起来很有希望!我将再测试一段时间,然后回来。我想知道这是否是一个问题,所以我尝试创建一个数组来删除注释,然后从中删除FROM,但没有效果。但到目前为止,这看起来很有希望!我会再测试一会儿,然后回来。