html table 排序

//使用的排序因子
var _SORT_FUNC=asc;
//被排序的列索引
var _CUR_COL_INDEX=0;
//顺序排序因子
function asc(a,b){
return a.localeCompare(b);
}
//倒序排序因子
function desc(a,b){
return a.localeCompare(b)*-1;
}
//更新全局参数
function updateGV(cIndex){
if(cIndex!=_CUR_COL_INDEX){
_CUR_COL_INDEX=cIndex;
_SORT_FUNC=asc;
}else if(_SORT_FUNC==asc){
_SORT_FUNC=desc;
}else{
_SORT_FUNC=asc;
}
}
//主方法
function tableSort(cIndex){

var table = document.getElementById("t1");

updateGV(cIndex);
var sortArr=getColTextArr(table,cIndex);
sortArr.sort(_SORT_FUNC);
execTableSort(table,cIndex,sortArr);

setColor(table);
}
function setColor(table){
for(var i=table.rows.length-1;i>0;i--){
if(i%2==0)
table.rows(i).bgColor='#BBBBBB';
else
table.rows(i).bgColor='#AAAAAA';
}
}
//获得某列文本的数组
function getColTextArr(table,cIndex){
var colTextArr=new Array();
for(var i=table.rows.length-1;i>0;i--){
colTextArr.push(table.rows(i).cells[cIndex].innerText);
}
return colTextArr;
}
//执行排序操作
function execTableSort(table,cIndex,sortArr){
var aLen=sortArr.length;
var rLen=table.rows.length;
var row;
//遍历数组
for(var i=0;i<aLen;i++){
//遍历i后的表行
for(var j=i+1;j<rLen;j++){
row=table.rows[j];
if(row.cells[cIndex].innerText==sortArr[i]){
if(i!=j)
row.swapNode(table.rows(i+1));
break;
}
}
}
}

<td align="center" title="单击排序" style="cursor:hand" οnclick="tableSort(this.cellIndex);" nowrap >
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值