热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jQuery插件tablesorter表格排序使用说明

简介Tablesorter是一个用来直接在浏览器上对表格数据进行排序的jQuery插件,无需再次刷新页面,支持多种单元格数据类型,例如数值、字符串、日期和自定义排序。使用说明引入j
简介

Tablesorter 是一个用来直接在浏览器上对表格数据进行排序的jQuery插件,无需再次刷新页面,支持多种单元格数据类型,例如数值、字符串、日期和自定义排序。

使用说明

引入jquery.tablesorter

所用文件下载:
jquery-2.0.2.min.js
jquery.tablesorter.min.js tablesorert 文档

修改表格

html如下:

注:为table添加id和class,class必有tablesorter,id可有可无.

css: (详见文章末尾详细代码)
定义表格样式:表头、升序、降序等样式。

排序实现

点击表头时,即可对其相应的列进行排序;
js代码如下:

效果如图:

  • 降序

《jQuery插件 tablesorter 表格排序 使用说明》

  • 升序

《jQuery插件 tablesorter 表格排序 使用说明》

数据后带有汉字

对于如图所示的序号、年龄、进度等各类数字类型的数据,排序功能毫无差错。
但是,对于如图所示的课程数、时长、分数等数据后带有汉字的数据,排序没什么效果,例如下图:
降序:
《jQuery插件 tablesorter 表格排序 使用说明》

升序:
《jQuery插件 tablesorter 表格排序 使用说明》

对于这种情况,可以做如下处理:
js代码

//自定义排序
$.tablesorter.addParser({
id: "num", //指定一个唯一的ID
is: function(s){
return false;
},
format: function(s){
return s.substring(0,s.length-2);//去除后面的汉字
},
type: "numeric" //按数值排序
});
$("#tbList").tablesorter({headers:{5:{sorter:"num"},6:{sorter:"num"},7:{sorter:"num"}}}); //表格第六、七、八列

时间格式:xx时xx分xx秒

《jQuery插件 tablesorter 表格排序 使用说明》

如上图所示,显然要按时间长短来排序,这种数据,比较麻烦。
对于这种情况,可以做如下处理:
js代码

$.tablesorter.addParser({
id: "num", //指定一个唯一的ID
is: function(s){
return false;
},
format: function(s){
//对 xx时xx分xx秒 数据的处理
var hourNum= parseInt(s.substring(0,2));//xx时
var minuteNum= parseInt(s.substring(4,6));//xx分
var secOndsNum= parseInt(s.substring(7,9));//xx秒
//将时间换算为秒
var secOnds=hourNum*3600+minuteNum*60+secondsNum;
return seconds;
},
type: "numeric" //按数值排序
});
$(".tablesorter").tablesorter({headers:{6:{sorter:"num"}}});//表格第七列

排序效果如图:
降序
《jQuery插件 tablesorter 表格排序 使用说明》

升序
《jQuery插件 tablesorter 表格排序 使用说明》

更多处理情况,参见http://www.cnblogs.com/dwnblo…

代码

html























































































序号用户名姓名性别年龄课程数时长分数进度
1111test1华东区23 20 门32 分86 分79%
2李二梅244 门102 分68 分91%
3zhaoliu赵六3018 门57 分84 分37%
4iiiaiaia2014 门92 分79 分9%
合计: -- 人    -- 门 -- -- -- %






css

table.tablesorter{
font-family: arial;
font-size: 8pt;
width: 100%;
text-align: left;
}
/*表头的样式*/
thead{
background:#ccc;
color:#ff0000;
}
.header{
background-image: url('../plugin/tablesorter/themes/blue/bg.gif');
background-repeat: no-repeat;
background-position: center right;
cursor: pointer;
}
/*降序时样式*/
th.headerSortDown{
color:#00ff00;
background-color: ##;
background-image: url('../plugin/tablesorter/themes/blue/desc.gif');
background-repeat: no-repeat;
background-position: center right;
cursor: pointer;
}
/*升序时样式*/
th.headerSortUp{
color:#0000ff;
background-color: ##;
background-image: url('../plugin/tablesorter/themes/blue/asc.gif');
background-repeat: no-repeat;
background-position: center right;
cursor: pointer;
}

js

// $("#tbList").tablesorter();
//自定义排序
$.tablesorter.addParser({
id: "num", //指定一个唯一的ID
is: function(s){
return false;
},
format: function(s){
return s.substring(0,s.length-2);
},
type: "numeric" //按数值排序
});
$("#tbList").tablesorter({headers:{6:{sorter:"num"},7:{sorter:"num"},8:{sorter:"num"}}});

// //自定义排序
// $.tablesorter.addParser({
// id: "num", //指定一个唯一的ID
// is: function(s){
// return false;
// },
// format: function(s){
// //对xx时xx分xx秒 数据的处理
// var hourNum= parseInt(s.substring(0,2));//xx时
// var minuteNum= parseInt(s.substring(4,6));//xx分
// var secOndsNum= parseInt(s.substring(7,9));//xx秒
// //将时间换算为秒
// var secOnds=hourNum*3600+minuteNum*60+secondsNum;
// return seconds;
// },
// type: "numeric" //按数值排序
// });
// $("#tbList").tablesorter({headers:{6:{sorter:"num"}}}); //表格第七列
参考资料

  1. tablesorert 文档
  2. tableSorter使用介绍 http://www.cnblogs.com/dwnblo…
  3. 使用jquery的tablesorter插件进行表格排序 http://www.2cto.com/kf/201303…
  4. jQuery表格排序插件 tablesorter http://www.oschina.net/p/tabl…

推荐阅读
author-avatar
早安丶晚安丶英语连_691
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有