基于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实现十秒钟后注册按钮可点击的方法
May 13 Javascript
jquery图片轮播特效代码分享
Apr 20 Javascript
jQuery实现的简单提示信息插件
Dec 08 Javascript
JS添加删除DIV的简单实例
Jul 08 Javascript
javascript深拷贝(deepClone)详解
Aug 24 Javascript
jQuery中的100个技巧汇总
Dec 15 Javascript
webpack搭建vue 项目的步骤
Dec 27 Javascript
vue自定义全局组件(自定义插件)的用法
Jan 30 Javascript
vue 点击按钮实现动态挂载子组件的方法
Sep 07 Javascript
详解处理Vue单页面应用SEO的另一种思路
Nov 09 Javascript
使用layui前端框架弹出form表单以及提交的示例
Oct 25 Javascript
vue实现下载文件流完整前后端代码
Nov 17 Vue.js
利用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中time(),date(),mktime()区别介绍
2013/09/28 PHP
PHP读取RSS(Feed)简单实例
2014/06/12 PHP
php变量与数组相互转换的方法(extract与compact)
2016/12/02 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
Jquery 学习笔记(一)
2009/10/13 Javascript
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
javascript Window及document对象详细整理
2011/01/12 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
2018/05/25 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
2018/06/11 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
ElementUI radio组件选中小改造
2019/08/12 Javascript
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
python实现dnspod自动更新dns解析的方法
2014/02/14 Python
python计算时间差的方法
2015/05/20 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
使用python绘制二维图形示例
2019/11/22 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
python解决OpenCV在读取显示图片的时候闪退的问题
2021/02/23 Python
html5 button autofocus 属性介绍及应用
2013/01/04 HTML / CSS
师范生实习的个人自我鉴定
2013/10/20 职场文书
毕业生优秀推荐信
2013/11/26 职场文书
监理资料员岗位职责
2014/01/03 职场文书
《卖木雕的少年》教学反思
2014/04/11 职场文书
员工激励培训演讲稿
2014/09/16 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书
教师辞职书范文
2015/02/26 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书
2021年最新用于图像处理的Python库总结
2021/06/15 Python