使用jQuery计算表中已切换行的数量

时间:2018-07-10 15:31:14

标签: javascript jquery html html5

我的桌子上有一个搜索栏,并按以下方式对其进行过滤:

$(document).ready(function(){
      $("#myInput").on("keyup", function() {
        var value = $(this).val().toLowerCase();
        value = '(' + value + ')'
        if (value == '()'){
            value = ""
        }

            $("#table1 tr").filter(function() {
                $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
            });

        $('#counts').html(String(counter) + " results found")

      });
    });

我想要最后一行的计数器返回已过滤结果的数量。

此外,删除括号并设置value =“”非常慢。有没有办法来解决这个问题? (我添加了这些行是因为当您对搜索词进行退格时,由于“()”不会出现在任何地方,因此没有结果

1 个答案:

答案 0 :(得分:3)

如果搜索值为(),则可以使用$("#table1 tr").show();使所有行可见。

在切换可见性时,使用$("#table1 tr").each遍历所有行。

处理了行的可见性更改后,您可以使用$("#table1 tr:visible").length获取可见行的计数。

  $("#myInput").on("keyup", function() {
    var value = $(this).val().toLowerCase();
    value = '(' + value + ')';

    if (value === '()') {
      $("#table1 tr").show();
    } else {
      $("#table1 tr").each(function() {
        $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
      });
    }

    $('#counts').html($("#table1 tr:visible").length + " results found")

  });