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 相关文章推荐
JavaScript中继承的一些示例方法与属性参考
Aug 07 Javascript
Node.js中对通用模块的封装方法
Jun 06 Javascript
javascript给span标签赋值的方法
Nov 26 Javascript
js实现前端分页页码管理
Jan 06 Javascript
js实现功能比较全面的全选和多选
Mar 02 Javascript
JS验证input输入框(字母,数字,符号,中文)
Mar 23 Javascript
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
Jan 31 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
Sep 28 Javascript
jQuery实现点击图标div循环放大缩小功能
Sep 30 jQuery
vue router带参数页面刷新或回退参数消失的解决方法
Feb 27 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
Apr 13 Javascript
js观察者模式的弹幕案例
Nov 23 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中读取文件的8种方法和代码实例
2014/08/05 PHP
php简单实现发送带附件的邮件
2015/06/10 PHP
php实现求相对时间函数
2015/06/15 PHP
jquery之Document元素选择器篇
2008/08/14 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
js实现div拖动动画运行轨迹效果代码分享
2015/08/27 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
2017/01/13 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
2017/01/16 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
获取url中用&amp;隔开的参数实例(分享)
2017/05/28 Javascript
css和js实现弹出登录居中界面完整代码
2017/11/26 Javascript
js最简单的双向绑定实例讲解
2018/01/02 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
[01:05:52]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第一场 2月2日
2021/03/11 DOTA
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
对Python中内置异常层次结构详解
2018/10/18 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
python验证身份证信息实例代码
2019/05/06 Python
python实现跨年表白神器--你值得拥有
2021/01/04 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
乌克兰机票、铁路和巴士票、酒店搜索、保险:Tickets.ua
2020/01/11 全球购物
微博营销计划书
2014/01/10 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
机电一体化毕业生自荐信
2014/06/19 职场文书
团日活动总结报告
2014/06/25 职场文书
小学生春游活动方案
2014/08/20 职场文书
2014年统战工作总结
2014/12/09 职场文书
法律意见书范文
2015/06/04 职场文书
董事长年会致辞
2015/07/29 职场文书
化工生产实习心得体会
2016/01/22 职场文书
Linux下搭建SFTP服务器的命令详解
2022/06/25 Servers
Nginx报404错误的详细解决方法
2022/07/23 Servers
MySQL中的 inner join 和 left join的区别解析(小结果集驱动大结果集)
2023/05/08 MySQL