要对table里面的数据进行排序,首先需要下载jquery.tableSort.js插件(链接: https://pan.baidu.com/s/1JM6e9A-e8Vt7262aA3l9fA 提取码: w6q5),以及引入jQuery包,因为所有jq插件都是基于jQuery包的
测试tableSort
id
名称
人数
金额
16
红帽
2
270900000000
4
海盗
1
120000000
47
王子
1
200950000000
tablesorter.js,并不支持中文的排序,对其源码进行修改,可对中文进行排序
源码:
function sortText(a, b) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
};
function sortTextDesc(a, b) {
return ((b < a) ? -1 : ((b > a) ? 1 : 0));
};
修改后代码:
function sortText(a, b) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
};
function sortTextDesc(a, b) {
return ((b < a) ? -1 : ((b > a) ? 1 : 0));
};
源码:
ts.addParser({
id: "ipAddress",
is: function(s) {
return /^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(s);
},
format: function(s) {
var a = s.split("."), r = "", l = a.length;
for(var i = 0; i < l; i++) {
var item = a[i];
if(item.length == 2) {
r += "0" + item;
} else {
r += item;
}
}
return $.tablesorter.formatFloat(r);
},
type: "numeric"
});
修改后代码:
ts.addParser({
id: "ipAddress",
is: function(s) {
return /^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(s);
},
format: function(s) {
var a = s.split("."), r = "", l = a.length;
for(var i = 0; i < l; i++) {
var item = a[i];
if(item.length == 1) {
r += "00" + item;
}else if(item.length == 2) {
r += "0" + item;
} else {
r += item;
}
}
return $.tablesorter.formatInt(r);
},
type: "numeric"
});
/*
*工作需要扩展的,仅自己用!
*扩展排序函数
*/
//status排序
$.tablesorter.addParser({
id: "status", //指定一个唯一的ID
is: function(s){
return false;
},
format: function(s){
var str=0;
if(s.indexOf('<')!=-1){
str=0;
}else{
str=s.toLowerCase().replace(/在线/,1).replace(/离线/,2); //将中文换成数字
}
return str;
},
type: "numeric" //按数值排序
});
//num排序
$.tablesorter.addParser({
id: "num", //指定一个唯一的ID
is: function(s){
return false;
},
format: function(s){
var point=s.indexOf("");
var str=s[point-1];
if(str.indexOf('>')!=-1){
str=-1;
}
return str;
},
type: "numeric" //按数值排序
});