Javascript 删除所有<;tr>;如果不包含;测试“;正文

Javascript 删除所有<;tr>;如果不包含;测试“;正文,javascript,jquery,html,google-chrome-extension,Javascript,Jquery,Html,Google Chrome Extension,我第一次做一个chrome扩展,需要一些Javascript方面的帮助 在我的弹出菜单中,我想要几个按钮。一旦有人按下这个按钮,让我们说按钮“测试”。我希望它删除每个不包含单词“test”的 我之所以这么做是因为我经常使用的这个网站的过滤功能非常慢。这样,我可以通过删除行而不是程序搜索所有行来加快自己的过滤速度 这就是我到目前为止所做的: var searchString='TEST'; $(“#tbody tr td:contains(“+searchString+”)”))。每个(函数测试

我第一次做一个chrome扩展,需要一些Javascript方面的帮助

在我的弹出菜单中,我想要几个按钮。一旦有人按下这个按钮,让我们说按钮“测试”。我希望它删除每个不包含单词
“test”

我之所以这么做是因为我经常使用的这个网站的过滤功能非常慢。这样,我可以通过删除行而不是程序搜索所有行来加快自己的过滤速度

这就是我到目前为止所做的:

var searchString='TEST';
$(“#tbody tr td:contains(“+searchString+”)”))。每个(函数测试仪(){
if($(this).text()!=searchString){
$(this.parent().remove();
}
});
删除不包含以下内容的所有行:

测试
试试这个

$("#tbody tr td").each( function () {
    if ( $(this).text().indexOf( searchString ) == -1 ) { //notice the use of indexOf
        $(this).parent().remove();//
    }
});
或者您可以检查行的
文本
本身

$("#tbody tr").each( function () {
    if ( $(this).text().indexOf( searchString ) == -1 ) { 
        $(this).remove();//
    }
});

首先,不要使用内联JS。这是个坏习惯。改为使用不引人注目的JS附加事件处理程序

要解决实际问题,请使用
:contains
选择器以及
remove()
,类似如下:

$(“按钮”)。单击(函数(){
var searchString=$(this.text();
$(“#tbody tr td:contains(“+searchString+”))”)。最近('tr')。remove();
});

删除不包含以下内容的所有行:

试验 试验 福 试验 酒吧
已经有一个明显的问题了。
中使用的回调函数。函数必须是匿名的,就像
。每个(函数(){/*做点什么*/})`@3Dos它不必是匿名的。这不会导致错误,并将正确附加函数。这完全是毫无意义的,因为对
Tester
的引用将丢失。感谢@rorymcrossan的提醒。今天我学到了一些东西:)