我的表分拣机目前有点问题。问题是我正在整理我的时间,但当列包含n / a时,我希望它出现在排序的末尾。有人能帮我解决这个问题吗?
这是我的排序代码......
$("#myStoreStatus").tablesorter({
sortList: [[2,1],[8,0],[0,0]],
stripingRowClass: ['even','odd'],
stripeRowsOnStartUp: true,
widthFixed: false,
widgets: ['zebra'],
dateFormat: "uk",
headers: {
0: { sorter: 'digit' } // column number, type
}
});
答案 0 :(得分:1)
据我所知,问题在于您希望n / a行始终显示在末尾,即使时间列的排序顺序已更改。
这是一个可能的选择。
$("#myStoreStatus").tablesorter({
sortList: [[2,1],[8,0],[0,0]],
stripingRowClass: ['even','odd'],
stripeRowsOnStartUp: true,
widthFixed: false,
widgets: ['zebra'],
dateFormat: "uk",
headers: {
0: { sorter: 'digit' } // column number, type
},
textExtraction: function (node) {
if (($(node).index()==8) && ($(node).text().toLowerCase()=='n/a'))
$(node).parent().addClass('jsnamark');
return $(node).text();
}
}).bind('sortEnd' function () {
$(this).append($(this).find('.jsnamark'));
});
现在,这种和平正在做的事情非常简单。它使用textExtraction函数来检查第8个(时间)单元格是否具有“n / a”值。如果是,则将jsnamark类添加到其行中。 (如果使用服务器脚本为页面提供服务,也可以使用jQuery以几种不同的方式执行相同的操作;如果使用服务器脚本提供页面,则可以从服务器端执行相同的操作。)
完成排序后,会将具有jsnamark类的行重新显示到表的末尾。
答案 1 :(得分:1)
您可能还想查看我的fork of tablesorter。
有一个内置选项,您可以在其中设置字符串值(例如" N / A")在数字列中的排序方式 - 请参阅this demo。
如果您使用的是原始的tablesorter,则可以使用textExtraction
选项将N/A
替换为空字符串;或者使用@Jadran的代码也可以使用。