js表格字段排序
来源:互联网 发布:矩阵实际应用问题 编辑:程序博客网 时间:2024/06/12 01:26
1.比较函数生成器:
- /**
- * 比较函数生成器
- *
- * @param iCol
- * 数据行数
- * @param sDataType
- * 该行的数据类型
- * @return
- */
- function generateCompareTRs(iCol, sDataType) {
- return function compareTRs(oTR1, oTR2) {
- vValue1 = convert(oTR1.cells[iCol].firstChild.nodeValue, sDataType);
- vValue2 = convert(oTR2.cells[iCol].firstChild.nodeValue, sDataType);
- if (vValue1 < vValue2) {
- return -1;
- } else if (vValue1 > vValue2) {
- return 1;
- } else {
- return 0;
- }
- };
- }
2.处理比较字符类型:
- /**
- * 处理排序的字段类型
- *
- * @param sValue
- * 字段值 默认为字符类型即比较ASCII码
- * @param sDataType
- * 字段类型 对于date只支持格式为mm/dd/yyyy或mmmm dd,yyyy(January 12,2004)
- * @return
- */
- 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();
- }
- }
3.主函数:
- /**
- * 通过表头对表列进行排序
- *
- * @param sTableID
- * 要处理的表ID<table id=''>
- * @param iCol
- * 字段列id eg: 0 1 2 3 ...
- * @param sDataType
- * 该字段数据类型 int,float,date 缺省情况下当字符串处理
- */
- 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];
- }
- if (oTable.sortCol == iCol) {
- aTRs.reverse();
- } else {
- aTRs.sort(generateCompareTRs(iCol, sDataType));
- }
- var oFragment = document.createDocumentFragment();
- for ( var j = 0; j < aTRs.length; j++) {
- oFragment.appendChild(aTRs[j]);
- }
- oTBody.appendChild(oFragment);
- oTable.sortCol = iCol;
- }
将以上问代码封装到一个js文件中,在html页面中引用。
测试test.html:
- < html xmlns = "http://www.w3.org/1999/xhtml" >
- < title > 表列排序 </ title >
- < script type = "text/javascript" src = "js/sortTable.js" > </ script >
- < body >
- < table border = "1" id = "tblSort" >
- < thead style = "color: red; bgcolor: blank" >
- < tr >
- < th onclick = " sortTable('tblSort',0);" style = "cursor: pointer" > LastName </ th >
- < th onclick = " sortTable('tblSort',1,'int');" style = "cursor: pointer" > Number </ th >
- < th onclick = " sortTable('tblSort',2,'date');" style = "cursor: pointer" > Date </ th >
- </ tr >
- </ thead >
- < tbody >
- < tr >
- < td > A </ td >
- < td > 1 </ td >
- < td > 5/9/2008 </ td >
- </ tr >
- < tr >
- < td > B </ td >
- < td > 3 </ td >
- < td > 6/9/2008 </ td >
- </ tr >
- < tr >
- < td > D </ td >
- < td > 6 </ td >
- < td > 5/4/2008 </ td >
- </ tr >
- < tr >
- < td > E </ td >
- < td > -5 </ td >
- < td > 5/4/2007 </ td >
- </ tr >
- < tr >
- < td > H </ td >
- < td > 34 </ td >
- < td > 5/8/2008 </ td >
- </ tr >
- < tr >
- < td > C </ td >
- < td > 12 </ td >
- < td > 1/4/2018 </ td >
- </ tr >
- </ tbody >
- </ table >
- </ body >
- </ html >
- js表格字段排序
- js表格字段排序
- js实现表格字段本地排序
- JS实现表格排序,<thead>的不同字段
- JS表格排序
- JS表格排序新法
- JS表格排序新法
- 表格动态排序js
- js表格拖动排序
- JS表格排序
- js表格排序
- js表格排序
- js控制表格排序
- js 表格排序
- js 表格排序
- JS实现表格排序
- 自定义表格排序(JS)
- js之排序表格
- SQL*Loader的使用
- Eclipse启动错误 jvm terminated.Exit code=-1
- Linux动态链接库的建立
- 多线程知识点整理(多线程小结及解决应用挂死的问题)
- js打印
- js表格字段排序
- 获取属性文件properties
- 在Windows Azure上为iOS、 Android 和 Windows Phone构建可扩展的移动应用程序
- 如何估算oracle内存(SGA篇)
- 关于Android 下的自动化测试 (转载)
- SQL将存储过程的结果插入到临时表
- 关于DC和SelectObject()函数的理解
- 不会使用索引,导致全表扫描情况
- 哈工大数据结构实验4 查找与排序