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.findElementById()使用介绍
Sep 21 Javascript
javascript中 try catch用法
Aug 16 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
Sep 05 Javascript
JavaScript基础知识及常用方法总结
Jan 10 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
Aug 25 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
Sep 28 Javascript
JS中的数组转变成JSON格式字符串的方法
May 09 Javascript
Angularjs为ng-click事件传递参数
Jun 15 Javascript
layui select获取自定义属性方法
Aug 15 Javascript
vue项目中使用lib-flexible解决移动端适配的问题解决
Aug 23 Javascript
实例分析编写vue组件方法
Feb 12 Javascript
详细介绍Next.js脚手架完整搭建封装
Apr 26 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
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
PHP+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
2007/02/15 PHP
允许phpmyadmin空密码登录的配置方法
2011/05/29 PHP
必须收藏的23个php实用代码片段
2016/02/02 PHP
php bootstrap实现简单登录
2016/03/08 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
使用js修改客户端注册表的方法
2013/08/09 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
2014/06/06 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
2015/12/02 Javascript
如何用js实现鼠标向上滚动时浮动导航
2016/07/18 Javascript
jquery+CSS3实现3D拖拽相册效果
2016/07/18 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
微信小程序中页面FOR循环和嵌套循环
2017/06/21 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
React组件内事件传参实现tab切换的示例代码
2018/07/04 Javascript
浅谈JavaScript 声明提升
2020/09/14 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
[01:09:19]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第二场 2月28日
2021/03/11 DOTA
Python使用MONGODB入门实例
2015/05/11 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
python字典的常用操作方法小结
2016/05/16 Python
Windows下Python使用Pandas模块操作Excel文件的教程
2016/05/31 Python
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
python主要用于哪些方向
2020/07/05 Python
Chemist Warehouse中文网:澳洲连锁大药房
2021/02/05 全球购物
机关单位动员会主持词
2014/03/20 职场文书
责任心演讲稿
2014/05/14 职场文书
和谐拯救危机观后感
2015/06/15 职场文书
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL
Nginx 502 bad gateway错误解决的九种方案及原因
2022/08/14 Servers