我正在使用tablesorter.js的@Mottie分支
我在页面上有5-10个小表,并希望使用外部过滤器一次过滤所有这些表,但只能在一列上过滤。文档提到:
// filters to exclude, per column
filter_excludeFilter : {},
它需要从零开始的索引来选择要排除的列;但是,我选择的列#In不同。我希望只通过标题类来定位列,因为我可以为它应用一个类。相关代码:
HTML: <input type="search" class="search" placeholder="filter..." /></div>
js:
var $table = $(".tablesorter").tablesorter({
widgets: ["filter"],
widgetOptions: {
filter_external: '.search',
filter_defaultFilter: { '.salesinitials': '~{q}', },
filter_functions: { '.salesinitials': true },
filter_columnFilters: false
}
});
$("th > div.tablesorter-header-inner:contains('Sales Initials')")
.parent().addClass("salesinitials");
是否有其他方法只针对一列进行过滤?
filter_excludeFilter
option允许您使用jQuery选择器代替列索引。
但是,我认为您需要的解决方案是使用filter bindSearch function将所有表绑定到一个过滤器输入:
var $filter = $('.single-filter-input');
$('.all-tables').each(function(table) {
// table - table DOM element (or jQuery object) of table.
// $el - jQuery object of one or more input (search) elements to bind.
// false - boolean flag to force a new search.
$.tablesorter.filter.bindSearch(table, $filter, false);
});