我正在使用最新版本的tablesorter插件,我需要以特殊方式对列进行排序。
值可以是这样的:
我需要按日期排序,因此 Q4(31-12-2010)等值应显示为第一个
日期格式如下: dd-mm-yyyy
这甚至可能吗?
答案 0 :(得分:1)
以下是我将如何执行此操作的示例:
$.tablesorter.addParser({
id: 'quarters',
is: function (s) {
return false;
},
format: function (s) {
var match = s.match(/(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20\d\d)/);
if (match)
{
return match[3] * 1000 - match[2] * 100 - match[1] * 10;
}
else return 0;
},
type: 'text'
});
$(document).ready(function () {
$("table").tablesorter({
headers: {
0: {
sorter: 'quarters'
}
}
});
});
您可以将无效日期部分的回报调整为您想要的任何整数(0使其在最早的日期之前出现。)
答案 1 :(得分:1)
我使用自定义解析器
重写了这个似乎为您的目的工作。
重要的部分在这里:
$.tablesorter.addParser({
id: 'quarters',
is: function (s) {
return false;
},
format: function (s) {
s = s.toLowerCase().replace(/q[0-9]/,'').replace(/\(/,'').replace(/\)/,'');
match = s.match(/(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20\d\d)/);
return match[3] + match[2] + match[1];
},
type: 'text'
});