我需要在列中对数字进行排序,以便负数始终按正数排序。阅读它可以在numberSorter属性的帮助下完成,但我没有找到它的任何示例。
例如,我按升序排序,如下所示:
1
2
3
4
5
6
-1
-2
-3
当我按降序排序时,它会这样排序:
6
5
4
3
2
1
-3
-2
-1
他们的例子:
$(function(){
$("table").tablesorter({
numberSorter : function(a, b, direction, maxColumnValue){
// direction; true = ascending; false = descending
// maxColumnValue = the maximum value of that column (ignoring its sign)
return a - b;
}
});
});
给我错误: TypeError:x未定义
我该怎么做?
答案 0 :(得分:1)
好吧,看起来你发现了一个错误。这一行(732):
sort = c.numberSorter ? c.numberSorter(x[col], y[col], dir, colMax[col], table) :
实际上应该是这样的(分别用& b代替x& y)
sort = c.numberSorter ? c.numberSorter(a[col], b[col], dir, colMax[col], table) :
然后,一旦你这样做,你可以使用这个numberSorting脚本(demo)。
$("table").tablesorter({
theme : 'blue',
numberSorter: function (a, b, direction) {
if (a >= 0 && b >= 0) { return direction ? a - b : b - a; }
if (a >= 0) { return -1; }
if (b >= 0) { return 1; }
return direction ? b - a : a - b;
}
});
答案 1 :(得分:0)
// add parser through the tablesorter addParser method
$.tablesorter.addParser({
// set a unique id
id: 'mySortingFunction',
is: function(s) {
// return false so this parser is not auto detected
return false;
},
format: function(s) {
// your logic
return s;
},
// set type, either numeric or text
type: 'numeric'
});
$(function() {
$("table").tablesorter({
headers: {
6: {
sorter:'mySortingFunction'
}
}
});
});
6它是您想要使用自定义mySortingFunction排序的列号(您需要更改它)。