使用jquery tablesorter进行基于OR的搜索

时间:2013-08-12 13:55:23

标签: jquery tablesorter

想象一下以下基本表([search]来自应用过滤器小部件):

Name            Address
------------------------------------
[search]        [search]
------------------------------------
Albert          St. Albert Street 2
Mona            St. Albert Street 13

我所做的是我隐藏了[搜索]行并在我的表格上方放置了一个输入搜索字段。然后我使用以下代码来应用搜索:

$('#search').on('keyup', function() {
    var search = $(this).val();
    $('table').find('input.tablesorter-filter').val(search);
    $('table').trigger('search', false);
});

但是,这会使用基于AND的behvaiour搜索表格,即一行中的所有列必须与搜索匹配才能成功匹配。我想要的是,如果任何列匹配,则该行是成功匹配(即基于OR的行为)。

在搜索框中键入Albert应返回两行,而不仅仅是第一行。

那么,这可能是使用tablesorter吗?

1 个答案:

答案 0 :(得分:3)

不使用tablesorter v2.10.8:/

但是,如果有人有兴趣,我确实解决了这个问题......

$('#search').on('keyup', function() {
    var search = $(this).val().toLowerCase();
    $('table').each(function() { // Search among possibly multiple tables

        // Hide all table rows
        $(this).find('tbody tr').hide();

        // Search through all td:s and if a match is found => display the tr that the td belongs to
        $(this).find('tbody td').filter(function() {
             return $(this).text().toLowerCase().indexOf(search) != -1; // case insensitive search
        }).parent().show();

        $(this).trigger('applyWidgets'); // for zebra
    });
});