我正在尝试为jQuery插件Tablesorter编写自定义解析器。我们的想法是在第一次点击时按降序对数字进行排序。
但是,当我对表格进行排序时,订单不会改变。有时会移动几行,但大多数都保持不变。这是代码:
$.tablesorter.addParser({
id: 'desc',
is: function(s) { return false },
format: function(s) {
return 1.0 / parseFloat( s.replace(/,/g,'') );
},
type: 'numeric'
});
我写的其他解析器工作正常。我尝试了9999减去数字而不是1.0除以它,以防它是漂浮物的问题(没有运气)。
答案 0 :(得分:2)
我找到了解决方案。我在每列中都有一些空单元格,它们被解析为“NaN”。为什么这搞砸了订单,我不知道(空白单元格间歇性地用常规数字间隔,没有任何顺序)。
简而言之,此代码适用于格式化函数:
format: function(s) {
if ( s == '' )
return 0;
return -parseInt( s.replace(/,/g,'') );
}
答案 1 :(得分:0)
要以反向数字顺序对某些内容进行排序,对我来说,自然的方法是将它乘以-1,而不是你尝试过的方法。
对于解析器本身,我注意到的唯一区别是你返回一个实际数字,而Tablesorter站点的parser example返回一个字符串。也许在返回之前将值转换回字符串会起作用吗?