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 相关文章推荐
jQuery 解析xml文件
Aug 09 Javascript
js传参数受特殊字符影响错误的解决方法
Oct 21 Javascript
iframe父页面获取子页面参数的方法
Feb 21 Javascript
Node.js中调用mysql存储过程示例
Dec 20 Javascript
js使用心得分享
Jan 13 Javascript
JavaScript获取页面中第一个锚定文本的方法
Apr 03 Javascript
谷歌Chrome浏览器扩展程序开发小记
Jan 06 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
Jul 13 Javascript
vue2.0父子组件间通信的实现方法
Apr 19 Javascript
微信小程序实现传参数的几种方法示例
Jan 10 Javascript
JS实现的RC4加密算法示例
Aug 16 Javascript
Vue3实现简易音乐播放器组件
Aug 14 Vue.js
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
php escape URL编码
2008/12/10 PHP
用PHP实现读取和编写XML DOM代码
2010/04/07 PHP
简单的php文件上传(实例)
2013/10/27 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
PHP PDOStatement::bindParam讲解
2019/01/30 PHP
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
在javascript中关于节点内容加强
2013/04/11 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
2015/08/28 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
React教程之封装一个Portal可复用组件的方法
2018/01/02 Javascript
Angular实现的进度条功能示例
2018/02/18 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
Python模块搜索路径代码详解
2018/01/29 Python
浅析python3中的os.path.dirname(__file__)的使用
2018/08/30 Python
python绘制中国大陆人口热力图
2018/11/07 Python
Python中使用遍历在列表中添加字典遇到的坑
2019/02/27 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
python 字典操作提取key,value的方法
2019/06/26 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
Pycharm调试程序技巧小结
2020/08/08 Python
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
什么是重载?CTS、CLS和CLR分别做何解释
2012/05/06 面试题
中专毕业生求职简历的自我评价
2013/10/21 职场文书
幼儿师范毕业生自荐信
2013/11/09 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
企业文化学习心得体会
2016/01/21 职场文书
2016大学生优秀志愿者事迹材料
2016/02/25 职场文书