最近,因为项目需要,对表格排序做了一下摸索,整理如下:
1. 首先,可从官网下载tablesorter.js,但并不支持中文的排序,对其源码进行修改:
部分源码:
function sortText(a, b) {
return ((a b) ? 1 : 0));
};
function sortTextDesc(a, b) {
return ((b a) ? 1 : 0));
};
修改后:
function sortText(a,b) {
return a.localeCompare(b);
};
function sortTextDesc(a,b) {
return b.localeCompare(a);
};
修改完之后的js可支持中文的排序。
2.建立一个表格,格式如下:
$("#mytable").tablesorter();
First NameLast NameAgeTotalDiscountDateState
PeterParker28$9.9920%Jul 6, 2006 8:14 AM已审核JohnHood33$19.9925%Dec 10, 2002 5:14 AM已审核ClarkKent18$15.8944%Jan 12, 2003 11:14 AM已作废BruceAlmighty45$153.1944%Jan 18, 2001 9:12 AM待审核BruceEvans22$13.1911%Jan 18, 2007 9:12 AM已生效页面显示如图所示:
点击表头,就能够排序。
注:
1).若是第五列、第六列不需要排序,代码如下:
$("#mytable").tablesorter({headers:{4:{sorter:false},5:{sorter:false}}});
(顺便需要去掉对应列的样式)
2).若是第五列需要自定义排序方式,第六列不排序,代码如下:
$.tablesorter.addParser({
id: "grade", //指定一个唯一的ID
is: function(s){
return false;
},
format: function(s){
return s.toLowerCase().replace(/已作废/,1).replace(/待审核/,2).replace(/已审核/,3).replace(/已生效/,4); //将中文换成数字
},
type: "numeric" //按数值排序
});
$("#mytable").tablesorter({headers:{4:{sorter:"grade"},5:{sorter:false}}});
需要更多例子,可以到官网研究。