Tablesorter自定义过滤器功能 - 全表过滤器

时间:2016-01-15 16:38:14

标签: javascript jquery filter tablesorter

我有一个tableorter,有2个过滤列。第一个Filter作为下拉列表,现在没有问题。第二个过滤器旨在成为全表搜索和过滤器机制。

也就是说,即使它与计算机列相关联,它也应返回子行的结果 enter image description here

计算机过滤器应响应所有子行。例如,如果我搜索 z840,,则只有型号z840 的计算机应该出现。

但是,我根据要求提供了自定义辅助过滤机制顶部的标尺,用作工作组的过滤器

但是,如果我在工作组中进行过滤,并使用计算机过滤器,则会忽略自定义隐藏行,并搜索表中的任何行。 (Child Row搜索工作正常)。

我的问题是,有没有办法覆盖过滤器的功能,忽略任何已经满足某些条件IE的行:$(row).hasClass('hide')

我已尝试使用filter_functions,但每个结果最终都只搜索计算机名称

我正在使用Jinja模板,因此有点难以让小提琴运转,但这是一个样本。

http://jsfiddle.net/brianz820/856bzzeL/813/

按wg02排序(在顶部,没有结果),然后使用计算机过滤器搜索说,3.3。没有显示任何结果,但删除搜索后,将删除原始工作组过滤器。

在我的生产副本上,即使输入3.3也会返回任何工作组的结果,忽略过滤器。

Fiddle上可能有很多无关的代码,只是想获得一个正常工作的版本

感谢您阅读,目标是维护自由格式子搜索和过滤选择过滤器,但保留外部隐藏行。

如果您需要更多信息,请告诉我

 

1 个答案:

答案 0 :(得分:1)

我不确定这是不是您的意思,但使用过滤器小部件(demo)可以简化hideRows功能:

function hideRows() {
    var $table = $('.tablesorter'),
    filters = $.tablesorter.getFilters( $table );
  filters[2] = selected === 'All' ? '' : selected;
  $.tablesorter.setFilters( $table, filters );
}