这看起来应该很容易......
<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
;但这看起来很可怕,看起来很笨重。
可以使用自定义排序吗?
答案 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/,通过点击名称标题检查,忽略其他字段,它们就在那里,因为我编辑了现有的小提琴。
上的插件页面