基于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 相关文章推荐
图片按比例缩放函数
Jun 26 Javascript
javascript实现的像java、c#之类的sleep暂停的函数代码
Mar 04 Javascript
JavaScript接口实现代码 (Interfaces In JavaScript)
Jun 11 Javascript
浏览器页面区域大小的js获取方法
Sep 21 Javascript
使用firebug进行调试javascript的示例
Dec 16 Javascript
Sea.JS知识总结
May 05 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
Aug 15 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
Dec 14 Javascript
jquery——九宫格大转盘抽奖实例
Jan 16 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
Oct 25 Javascript
react native 获取地理位置的方法示例
Aug 28 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
Aug 31 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中文字符截取防乱码
2008/03/28 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
2013/05/06 PHP
Thinkphp多文件上传实现方法
2014/10/31 PHP
smarty中常用方法实例总结
2015/08/07 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
2009/09/15 Javascript
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
如何让DIV可编辑、可拖动示例代码
2013/09/18 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
vue的hash值原理也是table切换实例代码
2020/12/14 Vue.js
Django应用程序中如何发送电子邮件详解
2017/02/04 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2020/02/10 Python
python字符串的index和find的区别详解
2020/06/20 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
2020/09/03 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
前厅收银主管岗位职责
2014/02/04 职场文书
抄作业检讨书
2014/02/17 职场文书
十八大演讲稿
2014/05/22 职场文书
工作保证书怎么写
2015/02/28 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP
SQLServer RANK() 排名函数的使用
2022/03/23 SQL Server