我正在尝试自定义Tablesorter表的过滤功能。我有一个表,在某些情况下可能包含用逗号分隔的多个值(通常是一个或两个数字)。
列可能如下所示:
40 32 31,36 33 31,42 36 42 41,42
现在,如果我使用例如36 - 42过滤此列,我希望保留值为“31,42”的列。
我认为它可以是基本的,只需将值拆分并将输入与两个值进行比较。但我找不到合适的函数来挂钩。有什么想法吗?
更新
我有这个解析器来启用我逗号分隔列的排序
$.tablesorter.addParser( id: 'comma-number' format: (s) -> lNumber = parseFloat(s.replace(/,/g, '.')) return lNumber type: 'numeric' )
我想要做的是将过滤器搜索框中的输入与两个值进行比较。有没有办法在过滤器事件中保持输入值?
答案 0 :(得分:0)
这里的问题是,当tablesorter解析数字表格单元格内容时,它会忽略逗号(当usNumberFormat
option为true
时。31,42
的解析结果为3142
解决方案是将该列上的解析器设置为text
,并将过滤器设置为“匹配”
<th class="sorter-text filter-match">Numeric</th>
然后在过滤器中,使用" or "
operator进行搜索:"31 or 42"
或"31|42"
这只需要一个基本的初始化代码(demo):
$('table').tablesorter({
theme: 'blue',
widgets: ['zebra', 'filter'],
widgetOptions : {
filter_reset: '.reset'
}
});