Javascript 搜索表格单元格

Javascript 搜索表格单元格,javascript,jquery,performance,loops,Javascript,Jquery,Performance,Loops,我有一个表,它是隐藏的,包含1272行,其中有3列,带有 店名 邮政编码 钮扣 该脚本用于在所有td单元格中搜索商店名称或邮政编码,并且不会返回所需的结果 这是一个链接到 谢谢你的建议 $("#searchterm").on("keyup", function() { var value = $.trim($(this).val().toLowerCase()); $("table#participating_stores t

我有一个表,它是隐藏的,包含1272行,其中有3列,带有

  • 店名
  • 邮政编码
  • 钮扣
  • 该脚本用于在所有
    td
    单元格中搜索商店名称或邮政编码,并且不会返回所需的结果

    这是一个链接到

    谢谢你的建议

    $("#searchterm").on("keyup", function() {
        var value = $.trim($(this).val().toLowerCase());
    
    
        $("table#participating_stores tr:gt(0)").each(function(index) {
            if (index !== 0) {
                $row = $(this);
                
                var $tdElement = $row.find("td");
                var id = $.trim($tdElement.text().toLowerCase()) 
    
                var matchedIndex = id.indexOf(value);
                
                if (matchedIndex != 0) {
                    $row.hide();
                }
                else {
                    //highlight matching text, passing element and matched text
          
                    $row.show();
                }
            }
        });
    });
    

    我想这就是你要找的。我制作了这段可运行的代码片段,希望它能让您和任何试图思考这个问题的人更加清楚

    $(“#searchterm”)。在(“keyup”,function()上{
    var值=$(this.val();
    $(“表tr:not(:first)”).show().filter(函数(索引){
    返回$(this.find(“td”).text().indexOf(value)=-1;
    }).hide();
    });
    
    表格,tr,td,th{
    边框:1px纯黑;
    填充:3倍;
    }
    表th{
    背景色:#dddddd;
    }
    
    邮政编码商店名称
    12345店铺名称
    99999其他商店名称
    54321另一个名字
    第34名
    87898第五名
    

    有几个问题:1。
    find('td')
    获取一行的所有三个单元格,但是。。。2.然后下一个
    trim()。3.我认为
    matchedIndex
    应该检查
    ==-1
    (-1表示未找到)以隐藏行,而不是0。。。使用浏览器的调试器设置断点并逐步执行javascript代码以遵循处理。感谢Paul,这非常有用,我不确定-1的含义。感谢这个解决方案,它更快、更短。我在这里对它进行了修改,以便显示和隐藏表,并为空字符串设置了一个计时器,该计时器主要起作用