我使用的脚本发现要在表中进行搜索,并且仅显示包含与搜索输入字段中的文本匹配的行的行。
$("#searchfahrzeuge").keyup(function(){
$("#fahrzeugliste").find("tr").hide();
var data = this.value.split(" ");
var jo = $("#fahrzeugliste").find("tr");
$.each(data, function(i, v){
jo = jo.filter("*:containsIgnoreCase('"+v+"')");
console.log(jo);
});
jo.show(); });
但是现在我要排除表的两列,它们都有一个类“ .nosearch”,
但我不知道该怎么办...
我试过了:
var jo = $("#fahrzeugliste").find("tr:not(.nosearch)");
并且在过滤器功能中:
jo = jo.filter("*:not(.nosearch):containsIgnoreCase('"+v+"')");
但两者都不起作用。
最佳答案
您没有提供html,但我认为该类位于td
上。这是您的问题,所有筛选均在tr
级别完成,因此:not
应用于没有该类的tr
。
我将其更改为对td
而不是tr
元素进行过滤。像这样(未经测试):
var jo = $("#fahrzeugliste").find("tr > td");
$.each(data, function(i, v){
jo = jo.filter(":not(.nosearch):containsIgnoreCase('"+v+"')");
});
jo.parent().show(); // show the tr's for all matched tds