Javascript jQuery实时搜索-也删除表头

Javascript jQuery实时搜索-也删除表头,javascript,jquery,html,html-table,Javascript,Jquery,Html,Html Table,我在使用正则表达式搜索代码,以便通过php在服务器端填充的相当大的表进行实时搜索 稍微改变一下上面链接中描述的场景,我使用表头标记将表行的块分组(标记)在一起。我正在防止这些表头行与其他表行一起消失,以便在搜索时,结果仍然嵌套在它们的组中 我希望表格标题行也消失,但仅当它和下一个表格标题行之间没有表格行时。我不确定计数行是否有效,因为行没有消失,它们只是隐藏起来了 例如,我的桌子是这样布置的: HTML: 感谢所有的帮助!!谢谢 我通过添加另一个类(每个组/标签都是唯一的)并在“.keyup()

我在使用正则表达式搜索代码,以便通过php在服务器端填充的相当大的表进行实时搜索

稍微改变一下上面链接中描述的场景,我使用表头标记将表行的块分组(标记)在一起。我正在防止这些表头行与其他表行一起消失,以便在搜索时,结果仍然嵌套在它们的组中

我希望表格标题行也消失,但仅当它和下一个表格标题行之间没有表格行时。我不确定计数行是否有效,因为行没有消失,它们只是隐藏起来了

例如,我的桌子是这样布置的:

HTML:


感谢所有的帮助!!谢谢

我通过添加另一个类(每个组/标签都是唯一的)并在“.keyup()”部分中计算每个类的“:visible”行来解决我的难题。一旦每个类中的行数降到指定的数目以下,我就在if语句中使用“.hide()”使表头消失。if语句的else端使用“.show()”在表头的类计数超过指定数字时返回表头。

我也遇到了这个问题,解决方法是只针对.filter的主体部分,而不是整个表

$("#SearchPermissions").on("keyup", function() {
    var value = $(this).val().toLowerCase();
    $("#contentPart tr").filter(function() {
      $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
    });
  });
注意代码的$(“#contentPart tr”)部分。。这是指 通过这种方式,标题将从搜索中排除,因此在筛选表数据时仍将显示标题

$( document ).ready(function() {
    var $rows = $('tr.searchable');

    $('#search').keyup(function(e) {

        if (e.keyCode == 27) { $(this).val("") }

        var val = '^(?=.*\\b' + $.trim($(this).val()).split(/\s+/).join('\\b)(?=.*\\b') + ').*$',
            reg = RegExp(val, 'i'),
            text;

        $rows.show().filter(function() {
            text = $(this).text().replace(/\s+/g, ' ');
            return !reg.test(text);
        }).hide();
    });
});
$("#SearchPermissions").on("keyup", function() {
    var value = $(this).val().toLowerCase();
    $("#contentPart tr").filter(function() {
      $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
    });
  });