用jquery.sortElements实现table排序


Posted in Javascript onMay 04, 2014

项目中要实现table排序的功能。

网上有很多解决方案,很多都基于jQuery。

jquery.tablesorter,大小17KB,不过他的首页在ie10下兼容性有点问题。
DataTables,大小75KB,功能强大,带分页,搜索等功能。
还有插件叫sortElements,很小巧,只有3KB,兼容性也不错,而且在Github上有818个星。

最后我选择用sortElements,实现很简单:

1. 引入jQuery

<script type="text/javascript" src="jquery.js"></script>

2. 引入sortElements.js
<script type="text/javascript" src="jquery.sortElements.js"></script>

3. js 代码
$(document).ready(function(){ 
var table = $('#mytable');//table的id 
$('#sort_header')//要排序的headerid 
.each(function(){ 
var th = $(this), 
thIndex = th.index(), 
inverse = false; th.click(function(){ 
table.find('td').filter(function(){ 
return $(this).index() === thIndex; 
}).sortElements(function(a, b){ 
return $.text([a]) > $.text([b]) ? 
inverse ? -1 : 1 
: inverse ? 1 : -1; 
}, function(){ 
return this.parentNode; 
}); 
inverse = !inverse; 
}); 
}); 
});

4. html代码
<table id="mytable"> 
<tr> 
<th id="sort_header">Facility name</th> 
<th>Phone #</th> 
<th id="city_header">City</th> 
<th>Speciality</th> 
</tr> 
<tr> 
<td>CCC</td> 
<td>00001111</td> 
<td>Amsterdam</td> 
<td>GGG</td> 
</tr> 
... 
</table>
Javascript 相关文章推荐
js 格式化时间日期函数小结
Mar 20 Javascript
javascript学习基础笔记之DOM对象操作
Nov 03 Javascript
编写高质量JavaScript代码的基本要点
Mar 02 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
Aug 05 Javascript
TypeScript入门-接口
Mar 30 Javascript
JS实现异步上传压缩图片
Apr 22 Javascript
js实现本地图片文件拖拽效果
Jul 18 Javascript
原生JS+HTML5实现的可调节写字板功能示例
Aug 30 Javascript
angular将html代码输出为内容的实例
Sep 30 Javascript
vue项目查看vue版本及cli版本的实现方式
Oct 24 Javascript
design vue 表格开启列排序的操作
Oct 28 Javascript
微信小程序scroll-view不能左右滑动问题的解决方法
Jul 09 Javascript
jquery实现的鼠标拖动排序Li或Table
May 04 #Javascript
自己用jQuery写了一个图片的马赛克消失效果
May 04 #Javascript
javascript实现2048游戏示例
May 04 #Javascript
Extjs 4.x 得到form CheckBox 复选框的值
May 04 #Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
May 04 #Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
May 04 #Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
May 04 #Javascript
You might like
PHP三元运算的2种写法代码实例
2014/05/12 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
2015/10/15 PHP
PHP编写简单的App接口
2016/08/28 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
js获取div高度的代码
2008/08/09 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
jquery基础教程之数组使用详解
2014/03/10 Javascript
JavaScript组合模式学习要点
2016/08/26 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
2017/01/10 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
Vue2.0 组件传值通讯的示例代码
2017/08/01 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
小程序登录/注册页面设计的实现代码
2019/05/24 Javascript
vue使用nprogress实现进度条
2019/12/09 Javascript
[00:31]DOTA2荣耀之路7:Miracle-空血无敌斩
2018/05/31 DOTA
Python查看多台服务器进程的脚本分享
2014/06/11 Python
python并发编程多进程 互斥锁原理解析
2019/08/20 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
YOOX台湾:意大利奢侈品电商
2018/10/13 全球购物
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
匡威西班牙官网:Converse西班牙
2019/10/01 全球购物
毕业生自我鉴定
2013/12/04 职场文书
大学生社会实践自我鉴定
2014/03/24 职场文书
动物科学专业求职信
2014/07/27 职场文书
党员四风问题个人对照检查材料
2014/10/26 职场文书
师德师风个人总结
2015/02/06 职场文书
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python
golang中的struct操作
2021/11/11 Golang
在 Python 中利用 Pool 进行多线程
2022/04/24 Python
Python Matplotlib绘制动画的代码详解
2022/05/30 Python