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、css、img等浏览器缓存问题的2种解决方案
Oct 23 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
Jun 15 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
Aug 25 Javascript
有关文件上传 非ajax提交 得到后台数据问题
Oct 12 Javascript
JS 在数组指定位置插入/删除数据的方法
Jan 12 Javascript
JS实现批量上传文件并显示进度功能
Jun 27 Javascript
基于AngularJS实现表单验证功能
Jul 28 Javascript
VuePress 静态网站生成方法步骤
Feb 14 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
Nov 04 Javascript
微信小程序订阅消息(java后端实现)开发
Jun 01 Javascript
解决vue 退出动画无效的问题
Aug 09 Javascript
MutationObserver在页面水印实现起到的作用详解
Jul 07 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 printf输出格式使用说明
2010/12/05 PHP
PHP句法规则详解 入门学习
2011/11/09 PHP
有关PHP性能优化的介绍
2013/06/20 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
2014/12/16 PHP
php猴子选大王问题解决方法
2015/05/12 PHP
Thinkphp无限级分类代码
2015/11/11 PHP
Yii实现显示静态页的方法
2016/04/25 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
Jquery命名冲突解决的五种方案分享
2012/03/16 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
javascript的函数作用域
2014/11/12 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
node.js文件上传处理示例
2016/10/27 Javascript
基于vue.js实现图片轮播效果
2016/12/01 Javascript
vue.js的安装方法
2017/05/12 Javascript
Node.js中的cluster模块深入解读
2018/06/11 Javascript
Vue+axios实现统一接口管理的方法
2018/07/23 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
Python 中Pickle库的使用详解
2018/02/24 Python
python3使用smtplib实现发送邮件功能
2018/05/22 Python
Python中asyncio模块的深入讲解
2019/06/10 Python
使用python serial 获取所有的串口名称的实例
2019/07/02 Python
Python 防止死锁的方法
2020/07/29 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
乌鸦喝水教学反思
2014/02/07 职场文书
幼儿园儿童节主持词
2014/03/21 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
依法行政工作汇报材料
2014/10/28 职场文书
2015年见习期工作总结
2014/12/12 职场文书
同学聚会通知书
2015/04/20 职场文书
假如给我三天光明读书笔记
2015/06/26 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL