基于jQuery实现表格的排序


Posted in Javascript onDecember 02, 2016
$(function(){
 //存入点击列的每一个TD的内容;
 var aTdCont = [];

 //点击列的索引值
 var thi = 0
 
 //重新对TR进行排序
 var setTrIndex = function(tdIndex){
  for(i=0;i<aTdCont.length;i++){
   var trCont = aTdCont[i];
   $("tbody tr").each(function() {
    var thisText = $(this).children("td:eq("+tdIndex+")").text();
    if(thisText == trCont){
     $("tbody").append($(this));
    }
    });  
  }
 } 
 //比较函数的参数函数
 var compare_down = function(a,b){
   return a-b;
 } 
 var compare_up = function(a,b){
   return b-a;
 } 
 //比较函数
 var fSort = function(compare){
  aTdCont.sort(compare);
 }
 //取出TD的值,并存入数组,取出前二个TD值;
 var fSetTdCont = function(thIndex){
   $("tbody tr").each(function() {
    var tdCont = $(this).children("td:eq("+thIndex+")").text();
    aTdCont.push(tdCont);
   });
 }
 //点击时需要执行的函数
 var clickFun = function(thindex){
  aTdCont = [];
  //获取点击当前列的索引值
  var nThCount = thindex;
  //调用sortTh函数 取出要比较的数据
  fSetTdCont(nThCount);
 } 
 //点击事件绑定函数
 $("th").toggle(function(){
  thi= $(this).index();
  clickFun(thi);
  //调用比较函数,降序
  fSort(compare_up);
  //重新排序行
  setTrIndex(thi);
 },function(){
  clickFun(thi);
  //调用比较函数 升序
  fSort(compare_down);
  //重新排序行
  setTrIndex(thi);
 }) 
})

主要思路:

因为JS有SORT的方法,对数组进行排序,那么通过个方法,我们就会想到数组了。

1.点标表格标头的时候,取出点击的是那一列。即列的索引值。因为下面要进行排序的就是该列。所以我要知道是点的那一列。

2.对表格的数据部分,也就是tbody部分,进行点击的列的取值,把这些值存入到一个数组当中。

3.将存入数据的数组,通过SORT方法进行排序。(这里写了两种,升,或降,因为是点击时要切换排序的方式。第一次降,第二次升,第三降,第四升,依次进行)

4.将排序好的数组的值进行遍历,在遍历过程中,和每一行TR的点击列的那个TD当中的数据进行一个比较。如果相等,就插入到tbody的最后去.(最先插入的,将是在第一行。)

以上就是本文的全部内容,希望对大家有所帮助,谢谢对三水点靠木的支持!

Javascript 相关文章推荐
Javascript 读后台cookie代码
Sep 15 Javascript
JavaScript 类型的包装对象(Typed Wrappers)
Oct 27 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
Jun 06 Javascript
angular.bind使用心得
Oct 26 Javascript
vue实现全选、反选功能
Nov 17 Javascript
vue loadmore 组件滑动加载更多源码解析
Jul 19 Javascript
JavaScript中变量、指针和引用功能与操作示例
Aug 04 Javascript
element-ui循环显示radio控件信息的方法
Aug 24 Javascript
Vue实现表格中对数据进行转换、处理的方法
Sep 06 Javascript
新手快速入门JavaScript装饰者模式与AOP
Jun 24 Javascript
element-ui 本地化使用教程详解
Oct 28 Javascript
bootstrap-table后端分页功能完整实例
Jun 01 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
Dec 02 #Javascript
关于Vue.js一些问题和思考学习笔记(1)
Dec 02 #Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
Dec 02 #Javascript
基于javascript实现的快速排序
Dec 02 #Javascript
微信公众平台开发教程(五)详解自定义菜单
Dec 02 #Javascript
基于jQuery实现滚动切换效果
Dec 02 #Javascript
遍历json 对象的属性并且动态添加属性的实现
Dec 02 #Javascript
You might like
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
PHP+jquery实时显示网站在线人数的方法
2015/01/04 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
JavaScript 反科里化 this [译]
2012/09/20 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
jQuery知识点整理
2015/01/30 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
详细解读AngularJS中的表单验证编程
2015/06/19 Javascript
javascript验证手机号和实现星号(*)代替实例
2016/08/16 Javascript
RequireJs的使用详解
2017/02/19 Javascript
gulp教程_从入门到项目中快速上手使用方法
2017/09/14 Javascript
Angular4.0中引入laydate.js日期插件的方法教程
2017/12/25 Javascript
详解在Angular4中使用ng2-baidu-map的方法
2019/06/19 Javascript
Nuxt的动态路由和参数校验操作
2020/11/09 Javascript
原生js实现下拉框选择组件
2021/01/20 Javascript
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
python内存管理分析
2015/04/08 Python
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
Python中的多行注释文档编写风格汇总
2016/06/16 Python
Python实现扩展内置类型的方法分析
2017/10/16 Python
python集合常见运算案例解析
2019/10/17 Python
Python常用编译器原理及特点解析
2020/03/23 Python
汉森批发:Hansen Wholesale
2018/05/24 全球购物
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
应届生服务员求职信
2013/10/31 职场文书
大学自我鉴定
2013/12/20 职场文书
个人自我剖析材料
2014/02/07 职场文书
节水口号标语
2014/06/19 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
2015感人爱情寄语
2015/02/26 职场文书
张丽莉事迹观后感
2015/06/16 职场文书
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL