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 相关文章推荐
再谈querySelector和querySelectorAll的区别与联系
Apr 20 Javascript
jQuery实现的网页竖向菜单效果代码
Aug 26 Javascript
vue中关闭eslint的方法分析
Aug 04 Javascript
ios设备中angularjs无法改变页面title的解决方法
Sep 13 Javascript
利用jsonp解决js读取本地json跨域的问题
Dec 11 Javascript
JavaScrip数组去重操作实例小结
Jun 20 Javascript
vue props对象validator自定义函数实例
Nov 13 Javascript
d3.js实现图形拖拽
Dec 19 Javascript
webpack 动态批量加载文件的实现方法
Mar 19 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
Aug 06 Javascript
浅谈vue生命周期共有几个阶段?分别是什么?
Aug 07 Javascript
javascript的var与let,const之间的区别详解
Feb 18 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
php中变量及部分适用方法
2008/03/27 PHP
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
Laravel多域名下字段验证的方法
2019/04/04 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
laravel 出现command not found问题的解决方案
2019/10/23 PHP
js的event详解。
2006/09/06 Javascript
Jquery中增加参数与Json转换代码
2009/11/20 Javascript
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
javascript无刷新评论实现方法
2015/05/13 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
jQuery解决$符号命名冲突
2016/06/18 Javascript
jQuery中fadein与fadeout方法用法示例
2016/09/16 Javascript
JS中利用localStorage防止页面动态添加数据刷新后数据丢失
2017/03/10 Javascript
jQuery实现form表单序列化转换为json对象功能示例
2018/05/23 jQuery
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
JavaScript生成随机验证码代码实例
2019/09/28 Javascript
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
python使用xlrd与xlwt对excel的读写和格式设定
2017/01/21 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
python 动态生成变量名以及动态获取变量的变量名方法
2019/01/20 Python
python与字符编码问题
2019/05/24 Python
树莓派实现移动拍照
2019/06/22 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
MxNet预训练模型到Pytorch模型的转换方式
2020/05/25 Python
Python 制作查询商品历史价格的小工具
2020/10/20 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
HTML5离线缓存Manifest是什么
2016/03/09 HTML / CSS
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
下面这个程序执行后会有什么错误或者效果
2014/11/03 面试题
信息学院毕业生自荐信范文
2014/03/04 职场文书
完整版商业计划书
2014/09/15 职场文书
体育教师个人总结
2015/02/09 职场文书
python Django框架快速入门教程(后台管理)
2021/07/21 Python
python文件与路径操作神器 pathlib
2022/04/01 Python