欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

js实现表格字段排序_javascript技巧

程序员文章站 2022-06-01 08:04:34
...
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 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
* @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 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 oFragment.appendChild(aTRs[j]);
}
oTBody.appendChild(oFragment);
oTable.sortCol = iCol;
}

将以上问代码封装到一个js文件中,在html页面中引用。

测试test.html:

复制代码 代码如下:


表列排序 title >
script >




LastName th >
Number th >
Date th >
tr >
thead >


A td >
1 td >
5/9/2008 td >
tr >

B td >
3 td >
6/9/2008 td >
tr >

D td >
6 td >
5/4/2008 td >
tr >

E td >
-5 td >
5/4/2007 td >
tr >

H td >
34 td >
5/8/2008 td >
tr >

C td >
12 td >
1/4/2018 td >
tr >
tbody >
table >
body >
html >
js实现表格字段排序_javascript技巧

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • js实现表格字段排序_javascript技巧
  • 专题推荐

    作者信息
    js实现表格字段排序_javascript技巧

    认证0级讲师

    推荐视频教程
  • js实现表格字段排序_javascript技巧javascript初级视频教程
  • js实现表格字段排序_javascript技巧jquery 基础视频教程
  • 视频教程分类
    相关标签: js 表格排序