想象一下以下基本表([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吗?
答案 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
});
});