Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 表排序器和姓氏_Jquery_Tablesorter - Fatal编程技术网

Jquery 表排序器和姓氏

Jquery 表排序器和姓氏,jquery,tablesorter,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>

这似乎应该很容易做到

<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>

姓名号码
Joe Bloggs10
乔·亚当斯12
使用
jquery.tablesorter
,单击名称列时,我希望它按第一列的姓氏部分排序,而不是按默认值(即名字)排序

我知道这可以通过先从PHP反转来实现,所以
Adams,Joe
;但这看起来很可怕,看起来很笨重


这可以通过自定义排序来完成吗?

首先,您应该听取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'
    });
然后将其添加为name列的解析器,如下所示

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

});
这是工作的提琴,点击名字标题检查,忽略其他字段,因为我编辑了一个现有的提琴


这是自定义解析器上的插件页面

,这不让人困惑吗?通过单击名称,您希望它按名称排序。通过点击数字,你可以按数字排序。我同意萨吉夫的观点,这似乎是一种令人困惑的行为。将姓氏作为一个单独的列,这样人们就可以选择按FN或SN排序,不是更好吗?