jquery tablesorter - 字母数字排序优先级

时间:2014-09-19 18:04:29

标签: tablesorter

我有一张比赛结果表http://bhaa.ie/events/eircom-2014,其中年龄类别和年龄类别的位置显示在一列上。年龄类别的值为SM,35M,40M,....,85M。 p0x表示该类别中的跑步者位置。

SM p01
35M p01
SM p02
45M p01

此时的默认排序优先考虑35个分类,即

35M p01
45M p01
SM p01
SM p02

我希望SM(即高级男士)首先出现在排序顺序

SM p01
SM p02  
35M p01
45M p01

这是否可以使用jQuery tablesorter?

2 个答案:

答案 0 :(得分:1)

只需使用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标题以查看操作中的排序

答案 1 :(得分:0)

如果您使用的是fork of tablesorter,则可以将stringTo option设置为min,以强制字母字符始终在最低数字(demo)之前排序:< / p>

$(function () {
    $('table').tablesorter({
        theme: 'blue',
        stringTo: "min",
        headers: {
            4: {
                sorter: 'digit'
            }
        }
    });
});

此外,设置headers选项以确保将列设置为使用数字解析器而不是文本解析器,因为“S”位于第一行,因此该列被检测为文本列