1

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

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

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

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

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

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

那么,这可能使用tablesorter吗?

4

1 回答 1

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
    });
});
于 2013-08-13T07:22:51.383 回答