我使用的脚本发现要在表中进行搜索,并且仅显示包含与搜索输入字段中的文本匹配的行的行。

      $("#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

10-04 15:50