<!DOCTYPE>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JS实现点击表头表格自动排序(含数字、字符串、日期)</title>
<style>#tableSort{moz-user-select: -moz-none;-moz-user-select: none;-o-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;border-collapse: collapse; border-spacing: 0; margin: 0; padding: 0;width: 100%;text-align: center;margin:15px 0;}#tableSort th{cursor: pointer; background: #eee}#tableSort tr:nth-child(even){background: #f9f9f9}#tableSort th,#tableSort td{padding: 10px; border:1px solid #ccc;}
</style>
</head><body>
<table id="tableSort">
<thead>
<tr>
<th data-type="num">工号</th>
<th data-type="string">姓名</th>
<th data-type="string">性别</th>
<th data-type="date">时间</th>
</tr>
</thead>
<tbody>
<tr>
<td>07</td>
<td>aaaa</td>
<td>男</td>
<td>2012-12-12</td>
</tr>
<tr>
<td>03</td>
<td>mmmm</td>
<td>女</td>
<td>2013-12-16</td>
</tr>
<tr>
<td>01</td>
<td>cccc</td>
<td>男</td>
<td>2014-12-12</td>
</tr>
<tr>
<td>04</td>
<td>ffff</td>
<td>女</td>
<td>2015-12-12</td>
</tr>
<tr>
<td>02</td>
<td>bbbb</td>
<td>男</td>
<td>2016-12-18</td>
</tr>
<tr>
<td>06</td>
<td>ssss</td>
<td>女</td>
<td>2008-10-07</td>
</tr>
<tr>
<td>05</td>
<td>tttt</td>
<td>男</td>
<td>2012-07-22</td>
</tr>
</tbody>
</table>
<script>
;(function(){var tbody = document.querySelector('#tableSort').tBodies[0];
var th = document.querySelector('#tableSort').tHead.rows[0].cells;
var td = tbody.rows;
for(var i = 0;i < th.length;i++){th[i].flag = 1;th[i].onclick = function(){sort(this.getAttribute('data-type'),this.flag,this.cellIndex);this.flag = -this.flag;};
};
function sort(str,flag,n){var arr = [];for(var i = 0;i < td.length;i++){arr.push(td[i]);};arr.sort(function(a,b){return method(str,a.cells[n].innerHTML,b.cells[n].innerHTML) * flag;});for(var i = 0;i < arr.length;i++){tbody.appendChild(arr[i]);};
};
function method(str,a,b){switch(str){case 'num': return a-b;break;case 'string': return a.localeCompare(b);break;default:return new Date(a.split('-').join('/')).getTime()-new Date(b.split('-').join('/')).getTime();};
};
})();
</script>
</body>
</html>

JS实现点击表头表格自动排序(含数字、字符串、日期)相关推荐

  1. html自动排序数字,JS实现点击表头表格自动排序(含数字、字符串、日期)

    效果图如下: Demo演示地址:点击这里 主要的JS代码如下: var tbody = document.querySelector('#tableSort').tBodies[0]; var th ...

  2. java点击表头可进行排序_table中点击表头实现排序的功能示例介绍

    表头名字,页面中获取上次点击的表头的名称和这次点击的表头的名称做比较,如果两者相同就按原先相反的顺序排列,否则新列升序排列, 获取排列顺序的列名及排列顺序以后,传到后台获取相应sql,添加order ...

  3. html 表格自动排序,jQuery html表格排序插件tablesorter使用方法详解

    tablesort是一款很好用的jQuery表格排序插件. 支持多种数据类型排序,会自动识别表格内容数据类型,使用也非常方便. 使用jQuery tablesort实现html表格方法: 1. 下载j ...

  4. NetTiers学习笔记09---RADGrid + EntityDataSource设置默认排序, 及表格自动排序,分页的方法...

    前段时间虽然解决了排序和分页的问题,但始终没有解决默认排序的问题, 起初一直把焦点放在EntityDataSource的排序默认值上,但始终搞不定, 今天又花了不少时间Google和研究,终于通过设置 ...

  5. C#Datagidview 点击列头自动排序

    var c = new DataGridViewColumn(); c.CellTemplate = new DataGridViewTextBoxCell(); c.Name = name; c.H ...

  6. HTML表格自动排序

    jquery-tablesort jquery-tablesort下载地址 <!DOCTYPE html> <html> <head><meta charse ...

  7. js实现点击按钮图片自动切换_☆往事随風☆的博客

    文章目录 前言 一.基本思路 二.代码分析 1.创建数组保存图片的存储路径 2.获取按钮对象 3.调用定时器 4.关闭定时器 三.整体代码 四.效果展示 前言 利用js实现一个图片自动切换的功能. 一 ...

  8. js实现点击按钮使图片排序

    效果 1 .点击按钮 如果按钮文字是从大到小 将li标签按照从大到小的顺序排列 文字改成从小到大 如果按钮文字是从小到大 将li标签按照从小到大的顺序排列 文字变成从大到小 2 .点击按钮 将li随机 ...

  9. elemet-ui后台表格自动排序解决办法

    加上sortable="custom" <el-table-column prop="fdcName" label="组合名称" wi ...

最新文章

  1. 理解jQuery对象$.html
  2. ajax jquery return没有返回值
  3. 星空[好题][题意转化]
  4. 农贸自由化对话国际农民丰收节贸易会:东北粮食贸易对策
  5. cad布局教程_CAD制图初学入门之常见的CAD打印设置汇总
  6. python 链表 【测试题】
  7. YUV / RGB 格式及快速转换
  8. 陶瓷移动在飞信版C++女程序员
  9. 2 在会计中未发现任何后继凭证
  10. 首批华为鸿蒙系统课程开发者
  11. 无线传感网1-简单介绍
  12. SACD ISO提取DSF文件及添加封面
  13. JDK1.8HashMap底层实现原理
  14. R语言销售分析计算某商品的连带或连带率指标函数
  15. 基于ASRT的开源实时语音转文本
  16. 杭电考研经验贴———报考计算机专业,慎重!!!
  17. margin失效问题——嵌套块元素引起的外边距坍塌
  18. 【观察】首款7nm芯片服务器亮相,联想驱动数据中心再创新
  19. Linux Ubuntu 安装 Realtek 8812BU无线网卡
  20. 通向架构师的道路(第十八天)万能框架 Spring ( 一 )

热门文章

  1. revit建模中复合墙与叠层墙区别?Revit中怎么创建叠层墙?
  2. StackOverflow和OutOfMemory
  3. 华为设备HCNA综合实验配置
  4. openwrt 处理间歇性无法上网(DNS故障)问题
  5. 基于matlab的数值分析实例研究,基于MATLAB的数值分析答辩.ppt
  6. linux下察看cpu状态
  7. 物联网开发笔记(63)- 使用Micropython开发ESP32开发板之控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程:显示中文
  8. linux下的挂载点和分区是什么关系(详解挂载点)
  9. Ubuntu安装luminati
  10. 3ds Max 2014以及低版本在高分辨率带DPI缩放设置的应用程序设置