jquery tablesorter - 字母数字排序优先
问题描述:
我有一个比赛结果http://bhaa.ie/events/eircom-2014表,其中年龄类别和与年龄类别的位置显示在一个列上。年龄类别具有SM,35M,40M,...,85M的值。 p0x表示该类别内的跑步者位置。jquery tablesorter - 字母数字排序优先
SM p01
35M p01
SM p02
45M p01
默认此刻排序给予优先于35 categoty,即
35M p01
45M p01
SM p01
SM p02
我宁愿为SM(即高级男装)首次出现在排序顺序
SM p01
SM p02
35M p01
45M p01
这可能与jQuery tablesorter?
答
只需使用custom parser进行排序,像这样:
$.tablesorter.addParser({
id: 'age',
is: function(s) {
return false;
},
format: function(s) {
return (s === 'SM' ? 0 : parseInt(s.replace('M', ''), 10));
},
type: 'numeric'
});
$(function() {
$("table").tablesorter({
headers: {
0: {
sorter:'age'
}
}
});
});
的完整代码可在jsfiddle。 点击t0
头在行动中看到排序
答
如果您使用我的fork of tablesorter,您可以设置stringTo
option到min
迫使字母字符总是排序前的最低数量(demo):
$(function() {
$('table').tablesorter({
theme: 'blue',
stringTo: "min",
headers: {
4: {
sorter: 'digit'
}
}
});
});
另外,headers
选项设置为确保将列设置为使用数字解析器而不是文本解析器,因为“S”位于第一行,因此该列被检测为文本列。