我正在尝试为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除以它,以防它是漂浮物的问题(没有运气)。

有帮助吗?

解决方案

我找到了解决方案。我在每列中有一些空单元,它们被解析为“NaN”。为什么这搞砸了订单,我不知道(空白单元格间歇性地用常规数字间隔,没有任何顺序)。

简而言之,此代码适用于格式化函数:

 format: function(s) {
  if ( s == '' )
   return 0;  
  return -parseInt( s.replace(/,/g,'') );
 }

其他提示

要以反向数字顺序对某些内容进行排序,对我来说,自然的方法是将它乘以-1,而不是你尝试过的方法。

至于解析器本身,我注意到的唯一区别是你返回的是实际数字,而解析器示例返回一个字符串。也许在返回之前将值转换回字符串会起作用吗?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top