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类的封装及实现代码
Dec 02 Javascript
两种简单实现菜单高亮显示的JS类代码
Jun 27 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
Feb 06 Javascript
js实现禁止中文输入的方法
Jan 14 Javascript
jquery实现左右滑动菜单效果代码
Aug 27 Javascript
js检测用户输入密码强度
Oct 22 Javascript
学习javascript面向对象 掌握创建对象的9种方式
Jan 04 Javascript
jQuery插件之validation插件
Mar 29 jQuery
JQuery EasyUI 结合ztrIee的后台页面开发实例
Sep 01 jQuery
AngularJS中controller控制器继承的使用方法
Nov 03 Javascript
详解Vue单元测试Karma+Mocha学习笔记
Jan 31 Javascript
angularjs数组判断是否含有某个元素的实例
Feb 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
PHP 内存缓存加速功能memcached安装与用法
2009/09/03 PHP
Linux环境下搭建php开发环境的操作步骤
2013/06/17 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
jQuery toggle()设置CSS样式
2009/11/05 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
2014/06/15 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
2016/06/13 Javascript
详解js的异步编程技术的方法
2017/02/09 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
2017/09/14 Javascript
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
2017/12/28 Javascript
spirngmvc js传递复杂json参数到controller的实例
2018/03/29 Javascript
微信小程序如何获取手机验证码
2018/11/04 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
js实现简单图片拖拽效果
2021/02/22 Javascript
Python中的高级函数map/reduce使用实例
2015/04/13 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
对python的输出和输出格式详解
2018/12/08 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
python连接PostgreSQL过程解析
2020/02/09 Python
解决python-docx打包之后找不到default.docx的问题
2020/02/13 Python
使用Pycharm分段执行代码
2020/04/15 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
python爬虫如何解决图片验证码
2021/02/14 Python
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
皇家阿尔伯特瓷器美国官网:Royal Albert美国
2020/02/16 全球购物
医学护理毕业生自荐信
2013/11/07 职场文书
海飞丝的广告词
2014/03/20 职场文书
优秀党务工作者事迹材料
2014/05/07 职场文书
结对共建工作方案
2014/06/02 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书