【问题标题】:Search through Table Cells搜索表格单元格
【发布时间】:2020-11-28 03:03:14
【问题描述】:

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

  1. 商店名称
  2. 邮政编码
  3. 按钮

该脚本旨在搜索所有 td 单元格中的商店名称或邮政编码,但未返回所需的结果。

这是search的链接

建议

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

【问题讨论】:

  • 有几个问题:1. find('td') 获取一行的所有三个单元格,但是... 2. 然后下一个 trim()id 获取所有 3 个单元格中的文本这些单元格,它看起来像这样:iga zuccoli832go to survey。 3. 我认为matchedIndex 应该检查== -1(-1 表示未找到)以隐藏行,而不是 0? ... 使用浏览器的调试器设置断点并单步执行 javascript 代码以跟踪处理。
  • 感谢 Paul 非常有帮助,我不确定 -1 是什么意思

标签: javascript jquery performance loops


【解决方案1】:

我认为这就是您要寻找的。我已经制作了这个可运行的 sn-p,希望它能让你和任何试图思考这个问题的人更清楚。

$("#searchterm").on("keyup", function() {
  var value = $(this).val();

  $("table tr:not(:first)").show().filter(function(index) {
      return $(this).find("td").text().indexOf(value) == -1;
  }).hide();
});
table, tr, td, th{
    border: 1px solid black;
    padding: 3px;
}

table th{
    background-color: #dddddd;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
    <tr><th>Postal Code</th><th>Store Name</th></tr>
    <tr><td>12345</td><td>store name</td></tr>
    <tr><td>99999</td><td>another store name</td></tr>
    <tr><td>54321</td><td>yet another name</td></tr>
    <tr><td>34343</td><td>4th name</td></tr>
    <tr><td>87898</td><td>fifth name</td></tr>
</table>
<br />
<input type="text" id="searchterm" placeholder="search"></input>

【讨论】:

  • 感谢这个解决方案,它更快更短。我在这里对其进行了修改,以便显示和隐藏表格,并为空字符串设置一个计时器,该计时器主要工作here
猜你喜欢
  • 2018-03-28
  • 1970-01-01
  • 1970-01-01
  • 2016-03-21
  • 1970-01-01
  • 1970-01-01
  • 2018-04-02
  • 1970-01-01
  • 2012-12-25
相关资源
最近更新 更多