基于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 getElementsByName()的用法说明
Jul 31 Javascript
JavaScript类和继承 this属性使用说明
Sep 03 Javascript
基于jquery的页面划词搜索JS
Sep 14 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
Jun 16 Javascript
jQuery跨域问题解决方案
Aug 03 Javascript
jquery判断复选框是否被选中的方法
Oct 16 Javascript
JS双击变input框批量修改内容
Dec 12 Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
Dec 30 Javascript
bootstrap实现二级下拉菜单效果
Nov 23 Javascript
Node.js进阶之核心模块https入门
May 23 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
Jun 24 Javascript
微信小程序使用GoEasy实现websocket实时通讯
May 19 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封装的mysqli类完整实例
2016/10/18 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
2019/03/01 PHP
心扬JS分页函数代码
2010/09/10 Javascript
javascript 学习笔记(onchange等)
2010/11/14 Javascript
jQuery中调用WebService方法小结
2011/03/28 Javascript
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
2011/09/02 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
JQuery实现鼠标移动到图片上显示边框效果
2014/01/09 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
js实现网页随机切换背景图片的方法
2014/11/01 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
AngularJS 整理一些优化的小技巧
2016/08/18 Javascript
5种JavaScript脚本加载的方式
2017/01/16 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
2017/07/13 Javascript
Vue封装一个简单轻量的上传文件组件的示例
2018/03/21 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
2019/06/04 Javascript
node 版本切换的实现
2020/02/02 Javascript
使用preload预加载页面资源时注意事项
2020/02/03 Javascript
JavaScript进阶(三)闭包原理与用法详解
2020/05/09 Javascript
Windows下PyMongo下载及安装教程
2015/04/27 Python
centos6.4下python3.6.1安装教程
2017/07/21 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
html5使用canvas画一条线
2014/12/15 HTML / CSS
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
请假条的格式
2014/04/11 职场文书
“九一八事变纪念日”国旗下讲话稿
2014/09/14 职场文书
领导班子三严三实心得体会
2014/10/13 职场文书
2015年端午节国旗下演讲稿
2015/03/19 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
微观世界观后感
2015/06/10 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
Redis源码阅读:Redis字符串SDS详解
2021/07/15 Redis
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python