/**
* 通过表头对表列进行排序
*
* @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 >