用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 自动安装exe程序
Nov 30 Javascript
JavaScript基础知识学习笔记
Dec 02 Javascript
moment.js轻松实现获取当前日期是当年的第几周
Feb 05 Javascript
Javascript中常见的逻辑题和解决方法
Sep 17 Javascript
详解Vue路由开启keep-alive时的注意点
Jun 20 Javascript
详解用vue.js和laravel实现微信授权登陆
Jun 23 Javascript
vue-cli+webpack项目 修改项目名称的方法
Feb 28 Javascript
JS中实现隐藏部分姓名或者电话号码的代码
Jul 17 Javascript
vue使用rem实现 移动端屏幕适配
Sep 26 Javascript
使用RxJS更优雅地进行定时请求详析
Jun 02 Javascript
微信小程序全局变量改变监听的实现方法
Jul 15 Javascript
JS实现简单随机3D骰子
Oct 24 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 和 XML: 使用expat函数(一)
2006/10/09 PHP
PHP的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
javascript parseInt与Number函数的区别
2010/01/21 Javascript
jquery实现页面图片等比例放大缩小功能
2014/02/12 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
JavaScript控制网页层收起和展开效果的方法
2015/04/15 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
BootStrap Typeahead自动补全插件实例代码
2016/08/10 Javascript
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
js原生Ajax的封装和原理详解
2017/03/11 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
Python采用Django开发自己的博客系统
2020/09/29 Python
基于Python闭包及其作用域详解
2017/08/28 Python
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
Python实现定时执行任务的三种方式简单示例
2019/03/30 Python
Pandas0.25来了千万别错过这10大好用的新功能
2019/08/07 Python
python中可以声明变量类型吗
2020/06/18 Python
python3中数组逆序输出方法
2020/12/01 Python
python实现excel公式格式化的示例代码
2020/12/23 Python
Html5大文件断点续传实现方法
2015/12/05 HTML / CSS
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
元旦晚会主持词
2014/03/24 职场文书
小学语文教学经验交流材料
2014/06/02 职场文书
教师拔河比赛广播稿
2014/10/14 职场文书
2015年中秋节演讲稿
2015/03/20 职场文书
2015年教学管理工作总结
2015/05/20 职场文书
实习单位意见
2015/06/04 职场文书
JavaScript实现显示和隐藏图片
2021/04/29 Javascript
变长双向rnn的正确使用姿势教学
2021/05/31 Python
VS2019连接MySQL数据库的过程及常见问题总结
2021/11/27 MySQL
对象析构函数__del__在Python中何时使用
2022/03/22 Python
讲解Python实例练习逆序输出字符串
2022/05/06 Python
Go gorilla securecookie库的安装使用详解
2022/08/14 Golang