Javascript 删除所有<;tr>;如果不包含;测试“;正文
我第一次做一个chrome扩展,需要一些Javascript方面的帮助 在我的弹出菜单中,我想要几个按钮。一旦有人按下这个按钮,让我们说按钮“测试”。我希望它删除每个不包含单词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+”)”))。每个(函数测试
“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的提醒。今天我学到了一些东西:)