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编写COM组件的步骤
Mar 17 Javascript
Prototype源码浅析 String部分(二)
Jan 16 Javascript
Javascript中的几种URL编码方法比较
Jan 23 Javascript
JS仿Windows开机启动Loading进度条的方法
Feb 26 Javascript
实例代码详解jquery.slides.js
Nov 16 Javascript
jQuery插件开发汇总
May 15 Javascript
JS中的进制转换以及作用
Jun 26 Javascript
JS实现页面数据无限加载
Sep 13 Javascript
angularjs中ng-attr的用法详解
Dec 31 Javascript
jQuery为DOM动态追加事件的方法
Feb 16 Javascript
详解AngularJS1.x学习directive 中‘&amp; ’‘=’ ‘@’符号的区别使用
Aug 23 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
Feb 22 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
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
PHP在网页中动态生成PDF文件详细教程
2014/07/05 PHP
php缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
bcastr2.0 通用的图片浏览器
2006/11/22 Javascript
document.open() 与 document.write()的区别
2007/08/13 Javascript
VBS通过WMI监视注册表变动的代码
2011/10/27 Javascript
jquery Mobile入门—多页面切换示例学习
2013/01/08 Javascript
javascript+canvas实现刮刮卡抽奖效果
2015/07/29 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
2016/01/10 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
js原生实现FastClick事件的实例
2016/11/20 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
JS点击缩略图整屏居中放大图片效果
2017/07/04 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
vue中监听返回键问题
2019/08/28 Javascript
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
[01:35]2018年度CS GO最佳战队-完美盛典
2018/12/17 DOTA
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
2020/03/06 Python
python em算法的实现
2020/10/03 Python
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
某公司部分笔试题
2013/11/05 面试题
提高EJB性能都有哪些技巧
2012/03/25 面试题
制冷与电控专业应届生求职信
2013/11/11 职场文书
精通CAD能手自荐书
2014/01/31 职场文书
《太阳》教学反思
2014/02/21 职场文书
志愿者服务活动总结报告
2015/05/06 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
无线电知识基础入门篇
2022/02/18 无线电