基于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 相关文章推荐
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
May 07 Javascript
javascript实现yield的方法
Nov 06 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
Mar 04 Javascript
把Node.js程序加入服务实现随机启动
Jun 25 Javascript
日常收集整理的JavaScript常用函数方法
Dec 10 Javascript
实例详解jQuery的无new构建
Aug 02 Javascript
微信开发 使用picker封装省市区三级联动模板
Oct 28 Javascript
iscroll实现下拉刷新功能
Jul 18 Javascript
微信小程序之数据缓存的实例详解
Sep 29 Javascript
javaScript和jQuery自动加载简单代码实现方法
Nov 24 jQuery
Javascript地址引用代码实例解析
Feb 25 Javascript
JS中循环遍历数组的四种方式总结
Jan 23 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
一个无限级XML绑定跨框架菜单(For IE)
2007/01/27 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
jquery实现邮箱自动补全功能示例分享
2014/02/17 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
2015/04/06 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
用JavaScript实现对话框的教程
2015/06/04 Javascript
js实现点击向下展开的下拉菜单效果代码
2015/09/01 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
js实现图片懒加载效果
2017/07/17 Javascript
Vue.directive()的用法和实例详解
2018/03/04 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
2020/04/03 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
[02:12]DOTA2英雄基础教程 变体精灵
2013/12/16 DOTA
python3生成随机数实例
2014/10/20 Python
对python实时得到鼠标位置的示例讲解
2018/10/14 Python
python版本五子棋的实现代码
2018/12/11 Python
python pcm音频添加头转成Wav格式文件的方法
2019/01/09 Python
python实现顺时针打印矩阵
2019/03/02 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
python如何保存文本文件
2020/06/07 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
CSS3制作酷炫的三维相册效果
2016/07/01 HTML / CSS
基于HTML5 的人脸识别活体认证的实现方法
2016/06/22 HTML / CSS
StubHub中国:购买和出售全球活动门票
2020/01/01 全球购物
2014年创卫实施方案
2014/02/18 职场文书
房产协议书范本
2014/10/18 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
检讨书格式
2015/01/23 职场文书
个人年终总结范文
2015/03/09 职场文书
2015年学校禁毒工作总结
2015/05/27 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
详解TS数字分隔符和更严格的类属性检查
2021/05/06 Javascript