javascript操作表格排序实例分析


Posted in Javascript onMay 06, 2015

本文实例讲述了javascript操作表格排序的方法。分享给大家供大家参考。具体如下:

完整例子如下:

<html>
 <head>
 <title>Table Sort Example</title>
 <script type="text/javascript">
 //转换器,将列的字段类型转换为可以排序的类型:String,int,float
  function convert(sValue, sDataType) {
  switch(sDataType) {
   case "int":
   return parseInt(sValue);
   case "float":
   return parseFloat(sValue);
   case "date":
   return new Date(Date.parse(sValue));
   default:
   return sValue.toString();
  }
  }
  //排序函数产生器,iCol表示列索引,sDataType表示该列的数据类型
  function generateCompareTRs(iCol, sDataType) {
  return function compareTRs(oTR1, oTR2) {
    var vValue1 = convert(oTR1.cells[iCol].firstChild.nodeValue, sDataType);
    var vValue2 = convert(oTR2.cells[iCol].firstChild.nodeValue, sDataType);
    if (vValue1 < vValue2) {
    return -1;
    } else if (vValue1 > vValue2) {
    return 1;
    } else {
    return 0;
    }
   };
  }
  //排序方法
  function sortTable(sTableID, iCol, sDataType) {
  var oTable = document.getElementById(sTableID);
  var oTBody = oTable.tBodies[0];
  var colDataRows = oTBody.rows;
  var aTRs = new Array;
  //将所有列放入数组
  for (var i=0; i < colDataRows.length; i++) {
   aTRs[i] = colDataRows[i];
  }
  //判断最后一次排序的列是否与现在要进行排序的列相同,
  //是的话,直接使用reverse()逆序
  if (oTable.sortCol == iCol) {
   aTRs.reverse();
  } else {
   //使用数组的sort方法,传进排序函数
   aTRs.sort(generateCompareTRs(iCol, sDataType));
  }
  var oFragment = document.createDocumentFragment();
  for (var i=0; i < aTRs.length; i++) {
   oFragment.appendChild(aTRs[i]);
  }
  oTBody.appendChild(oFragment);
  //记录最后一次排序的列索引
  oTable.sortCol = iCol;
  }
 </script>
 </head>
 <body>
 <p>Click on the table header to sort in ascending order.</p>
 <table border="1" id="tblSort">
  <thead>
  <tr>
   <th onclick="sortTable('tblSort', 0)"
   style="cursor:pointer">Last Name</th>
   <th onclick="sortTable('tblSort', 1)"
   style="cursor:pointer">First Name</th>
   <th onclick="sortTable('tblSort', 2, 'date')"
   style="cursor:pointer">Birthday</th>
   <th onclick="sortTable('tblSort', 3, 'int')"
   style="cursor:pointer">Siblings</th>
  </tr>
  </thead>
  <tbody>
  <tr>
   <td>Smith</td>
   <td>John</td>
   <td>7/12/1978</td>
   <td>2</td>
  </tr>
  <tr>
   <td>Johnson</td>
   <td>Betty</td>
   <td>10/15/1977</td>
   <td>4</td>
  </tr>
  <tr>
   <td>Henderson</td>
   <td>Nathan</td>
   <td>2/25/1949</td>
   <td>1</td>
  </tr>
  <tr>
   <td>Williams</td>
   <td>James</td>
   <td>7/8/1980</td>
   <td>4</td>
  </tr>
  <tr>
   <td>Gilliam</td>
   <td>Michael</td>
   <td>7/22/1949</td>
   <td>1</td>
  </tr>
  <tr>
   <td>Walker</td>
   <td>Matthew</td>
   <td>1/14/2000</td>
   <td>3</td>
  </tr>
  </tbody>
 </table> 
 </body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
Json对象替换字符串占位符实现代码
Nov 17 Javascript
JS中的substring和substr函数的区别说明
May 07 Javascript
jquery默认校验规则整理
Mar 24 Javascript
JavaScript设计模式之外观模式实例
Oct 10 Javascript
js实现右下角提示框的方法
Feb 03 Javascript
js实现带圆角的两级导航菜单效果代码
Aug 24 Javascript
jquery实现可旋转可拖拽的文字效果代码
Jan 27 Javascript
ReactNative列表ListView的用法
Aug 02 Javascript
通过button将form表单的数据提交到action层的实例
Sep 08 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
Aug 28 Javascript
vue实现抖音时间转盘
Sep 08 Javascript
JavaScript修改注册表实例代码
Jan 05 Javascript
js获取form的方法
May 06 #Javascript
js给selected添加options的方法
May 06 #Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
May 06 #Javascript
js实现漂浮回顶部按钮实例
May 06 #Javascript
js实现仿百度汽车频道选择汽车图片展示实例
May 06 #Javascript
js中日期的加减法
May 06 #Javascript
javascript实现回到顶部特效
May 06 #Javascript
You might like
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
PHP读书笔记_运算符详解
2016/07/01 PHP
jQuery的deferred对象使用详解
2011/08/20 Javascript
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
JavaScript实现横向滑出的多级菜单效果
2015/10/09 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
jquery 正整数数字校验正则表达式
2017/01/10 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
2017/01/23 Javascript
深入理解jquery的$.extend()、$.fn和$.fn.extend()
2017/07/08 jQuery
JavaScript中变量、指针和引用功能与操作示例
2018/08/04 Javascript
Vue.js点击切换按钮改变内容的实例讲解
2018/08/22 Javascript
JavaScript实现下拉列表
2021/01/20 Javascript
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
python获取各操作系统硬件信息的方法
2015/06/03 Python
Python使用email模块对邮件进行编码和解码的实例教程
2016/07/01 Python
Python中标准库OS的常用方法总结大全
2017/07/19 Python
Python获取当前函数名称方法实例分享
2018/01/18 Python
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
2019/03/30 Python
python面向对象之类属性和类方法案例分析
2019/12/30 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
python 生成器需注意的小问题
2020/09/29 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
2020/10/15 Python
凯特王妃父母建立的派对用品网站:Party Pieces
2017/05/28 全球购物
国际书籍零售商:Wordery
2017/11/01 全球购物
模具专业求职信
2014/06/26 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
小学少先队活动总结
2015/05/08 职场文书
关于观后感的作文
2015/06/18 职场文书
催款函怎么写
2015/06/24 职场文书
一篇文章学会Vue中间件管道
2021/06/20 Vue.js