Tablesorter和姓氏

时间:2012-05-17 08:33:59

标签: jquery tablesorter

这看起来应该很容易......

<table>
    <tr><td>Name</td><td>Number</td></tr>
    <tr><td>Joe Bloggs</td><td>10</td></tr>
    <tr><td>Joe Adams</td><td>12</td></tr>
</table>

使用jquery.tablesorter,当点击名称列时,我希望它按第一列的姓氏部分排序,而不是默认的名字。

我知道可以先从PHP中撤消Adams, Joe;但这看起来很可怕,看起来很笨重。

可以使用自定义排序吗?

1 个答案:

答案 0 :(得分:0)

首先,您应该听听Rory和Sargiv提出的两条评论的建议,因为它会产生令人困惑的行为,但如果您仍然坚持这样做,您可以添加自定义解析器,如下所示

$.tablesorter.addParser({
        // set a unique id
        id: 'surname',
        is: function(s) {
            // return false so this parser is not auto detected
            return false;
        },
        format: function(s) {

            var parts = s.split(" ");
           // alert(parts[1]);
            // return surname here
            return parts[1];
        },
        // set type, either numeric or text
        type: 'text'
    });

然后将其添加为名称列的解析器,如此

$('table').tablesorter({
    // include zeba widgets
    widgets: ['zebra'],
    headers: {
                0: {
                    sorter:'surname'
                }
            }

});

这是工作小提琴http://jsfiddle.net/joycse06/2TZAn/1/,通过点击名称标题检查,忽略其他字段,它们就在那里,因为我编辑了现有的小提琴。

这是自定义解析器http://tablesorter.com/docs/example-parsers.html

上的插件页面