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之AJAX框架使用说明
Apr 24 Javascript
javascript实现按回车键切换焦点
Feb 09 Javascript
浅谈js中的闭包
Mar 16 Javascript
Javascript监视变量变化的方法
Jun 09 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
Jun 29 Javascript
JavaScript实现简单的树形菜单效果
Jun 23 Javascript
Angular2环境搭建具体操作步骤(推荐)
Aug 04 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
Mar 02 Javascript
Vue-cropper 图片裁剪的基本原理及思路讲解
Apr 17 Javascript
jquery-ui 进度条功能示例【测试可用】
Jul 25 jQuery
基于JavaScript实现控制下拉列表
May 08 Javascript
html5中sharedWorker实现多页面通信的示例代码
May 07 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
apache+mysql+php+ssl服务器之完全安装攻略
2006/09/05 PHP
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
2011/01/09 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
javascript将数组插入到另一个数组中的代码
2013/01/10 Javascript
NodeJS url验证(url-valid)的使用方法
2013/11/18 NodeJs
javascript操作excel生成报表示例
2014/05/08 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
Vue源码解析之Template转化为AST的实现方法
2018/12/14 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
JQuery省市联动效果实现过程详解
2020/05/08 jQuery
vue-quill-editor 自定义工具栏和自定义图片上传路径操作
2020/08/03 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
Python2随机数列生成器简单实例
2017/09/04 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
python pandas 如何替换某列的一个值
2018/06/09 Python
python简单实现AES加密和解密
2019/03/28 Python
零基础使用Python读写处理Excel表格的方法
2019/05/02 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
一文带你掌握Pyecharts地理数据可视化的方法
2021/02/06 Python
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
业务员辞职信范文
2015/03/02 职场文书
跳高加油稿
2015/07/21 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书
python 爬取天气网卫星图片
2021/06/07 Python
MySQL插入数据与查询数据
2022/03/25 MySQL
Nginx跨域问题解析与解决
2022/08/05 Servers