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 backgroundImage控制
May 19 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
Jul 26 Javascript
详解javascript获取url信息的常见方法
Dec 19 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
Dec 26 Javascript
jQuery插件HighCharts实现气泡图效果示例【附demo源码】
Mar 13 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
Apr 13 Javascript
Vue中的异步组件函数实现代码
Jul 20 Javascript
详解如何配置vue-cli3.0的vue.config.js
Aug 23 Javascript
electron制作仿制qq聊天界面的示例代码
Nov 26 Javascript
在layui.use 中自定义 function 的正确方法
Sep 16 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
Jul 24 Javascript
javascript实现前端分页功能
Nov 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
新安装的MySQL数据库需要注意的安全知识
2008/07/30 PHP
php遍历目录viewDir函数
2009/12/15 PHP
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
node.js实现逐行读取文件内容的代码
2014/06/27 Javascript
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
2015/05/13 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
通过jQuery学习js类型判断的技巧
2019/05/27 jQuery
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
python使用mailbox打印电子邮件的方法
2015/04/30 Python
python操作oracle的完整教程分享
2018/01/30 Python
利用scrapy将爬到的数据保存到mysql(防止重复)
2018/03/31 Python
python判断设备是否联网的方法
2018/06/29 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
pyspark 随机森林的实现
2020/04/24 Python
Python爬虫简单运用爬取代理IP的实现
2020/12/01 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
韩国三星集团旗下时尚品牌官网:SSF SHOP
2016/08/02 全球购物
应届实习生的自我评价范文
2014/01/05 职场文书
珠宝店促销方案
2014/03/21 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
捐款通知怎么写
2015/04/24 职场文书
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
2021/05/21 PostgreSQL
使用ORM新增数据在Mysql中的操作步骤
2021/07/26 MySQL
详细聊聊vue中组件的props属性
2021/11/02 Vue.js
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS