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