javascript实现Table排序的方法


Posted in Javascript onMay 15, 2015

本文实例讲述了javascript实现Table排序的方法。分享给大家供大家参考。具体实现方法如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>表格排序</title>
<style type="text/css">
body
{
 margin:0;
 padding:0;
 font-size:14px;
}    
table,td,th
{
 border:1px solid red;      
}
th
{
 width:100px;
 background:pink;
}
table
{
 margin:0 auto;
}  
a
{
 text-decoration:none;
}  
</style>
<script type="text/javascript">
function sortAge() {
 //获得表格对象
 var tblObj = document.getElementById("tblData");
 //把行节点集合存放到临时数组中,
 //注意这里存放的是表格行节点对象集合的引用
 //后续把排序后的数据添加回表格时,不需要删除行节点。
 var rowNodes = tblObj.rows;
 var arrTemp = new Array();
 for (var i = 1; i < rowNodes.length; i++) {
  arrTemp[i - 1] = rowNodes[i];
 }
 var sortFlag = tblObj.rows[0].cells[1].innerText;
 sortFlag = sortFlag.charAt(sortFlag.length - 1);
 //取最后一个字符(↑表示升序,↓表示降序)
 if (sortFlag == "↑") {
  tblObj.rows[0].cells[1].innerHTML = "<a href='javascript:void(0)' onclick='sortAge()'>年龄↓</a>";
  for (var i = 0; i < arrTemp.length; i++) {
   for (var j = i + 1; j < arrTemp.length; j++) {
    if (parseInt(arrTemp[j].cells[1].innerText) < parseInt(arrTemp[i].cells[1].innerText)) {
     var temp = arrTemp[i];
     arrTemp[i] = arrTemp[j];
     arrTemp[j] = temp;
    }
   }
  }
 }
 else {
  tblObj.rows[0].cells[1].innerHTML = "<a href='javascript:void(0)' onclick='sortAge()'>年龄↑</a>";
  for (var i = 0; i < arrTemp.length; i++) {
   for (var j = i + 1; j < arrTemp.length; j++) {
    if (parseInt(arrTemp[j].cells[1].innerText) > parseInt(arrTemp[i].cells[1].innerText)) {
     var temp = arrTemp[i];
     arrTemp[i] = arrTemp[j];
     arrTemp[j] = temp;
    }
   }
  }
 }
 //把排序后的数据添加回表格,
 //注意由于存放的是引用,所以不需要删除原来的行
 var TBodyObj = tblObj.childNodes[0];
 for (var i = 0; i < arrTemp.length; i++) {
  TBodyObj.appendChild(arrTemp[i]);
 }
}
</script>
</head>
<body>
<table id="tblData" cellspacing="0px" cellpadding="5px">
  <tr>
    <th>姓名</th>
    <th><a href="javascript:void(0)" onclick="sortAge()">年龄↑</a></th>
    <th>城市</th>
  </tr>
  <tr>
    <td>张三</td>
    <td>25</td>
    <td>北京</td>
  </tr>
  <tr>
    <td>李四</td>
    <td>30</td>
    <td>南昌</td>
  </tr>
  <tr>
    <td>王五</td>
    <td>21</td>
    <td>郑州</td>
  </tr>
  <tr>
    <td>李莫</td>
    <td>35</td>
    <td>天津</td>
  </tr>
  <tr>
    <td>肖丽</td>
    <td>19</td>
    <td>深圳</td>
  </tr>
  <tr>
    <td>罗成</td>
    <td>23</td>
    <td>上海</td>
  </tr>
</table>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
原生js的弹出层且其内的窗口居中
May 14 Javascript
微信企业号开发之微信考勤Cookies的使用
Sep 11 Javascript
JavaScript获取浏览器信息的方法
Nov 20 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
Jan 04 Javascript
jquery动态遍历Json对象的属性和值的方法
Jul 27 Javascript
Three.js快速入门教程
Sep 09 Javascript
微信小程序 生命周期详解
Oct 12 Javascript
原生和jQuery的ajax用法详解
Jan 23 Javascript
微信小程序 连续旋转动画(this.animation.rotate)详解
Apr 07 Javascript
基于Datatables跳转到指定页的简单实例
Nov 09 Javascript
Angular @HostBinding()和@HostListener()用法
Mar 05 Javascript
JavaScript多态与封装实例分析
Jul 27 Javascript
Javascript动态创建表格及删除行列的方法
May 15 #Javascript
javascript制作的滑动图片菜单
May 15 #Javascript
Javascript通过overflow控制列表闭合与展开的方法
May 15 #Javascript
javascript实现日期按月份加减
May 15 #Javascript
Javascript递归打印Document层次关系实例分析
May 15 #Javascript
Javascript节点关系实例分析
May 15 #Javascript
自己编写的支持Ajax验证的JS表单验证插件
May 15 #Javascript
You might like
异世界新番又来了,同样是从零开始,男主的年龄降到5岁
2020/04/09 日漫
再次研究下cache_lite
2007/02/14 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
2011/12/05 PHP
php查询操作实现投票功能
2016/05/09 PHP
php 策略模式原理与应用深入理解
2019/09/25 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
jQuery学习笔记 获取jQuery对象
2012/09/19 Javascript
jquery.qrcode在线生成二维码使用示例
2013/08/21 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
jQuery选择器源码解读(二):select方法
2015/03/31 Javascript
js跨域请求的5中解决方式
2015/07/02 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
2017/08/16 Javascript
React实践之Tree组件的使用方法
2017/09/30 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
2018/11/22 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
vue搜索和vue模糊搜索代码实例
2019/05/07 Javascript
element中Steps步骤条和Tabs标签页关联的解决
2020/12/08 Javascript
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
Cython 三分钟入门教程
2009/09/17 Python
python实现逆波兰计算表达式实例详解
2015/05/06 Python
pandas对指定列进行填充的方法
2018/04/11 Python
详解python运行三种方式
2019/05/13 Python
使用Python实现跳一跳自动跳跃功能
2019/07/10 Python
python中数据库like模糊查询方式
2020/03/02 Python
Python文件操作模拟用户登陆代码实例
2020/06/09 Python
应届毕业生求职信范文
2014/05/08 职场文书
励志演讲稿大全
2014/08/21 职场文书
中学生2014国庆节演讲稿:不屈的民族
2014/09/21 职场文书
财务人员岗位职责
2015/02/03 职场文书
党员干部廉政承诺书
2015/04/28 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python