js表头排序实现方法
本文实例讲述了js表头排序实现方法。分享给大家供大家参考。
具体实现方法如下:
<scripttype="text/javascript"> //是否递减排序 varisDescending=true; /***************************************** *要排序的行必须放到<tbody></tbody>标签中 *tableId:排序表格ID *colNo:排序的列号,即第几列,从0开始 *startRowNo:排序的开始行号,从0开始 *sortLength:要排序的行数, *type:排序列的类型 */ functionsort(tableId,colNo,startRowNo,sortLength,type) { //如果要排序的行数是1或是0,则不对其进行排序操作 if(sortLength<=1){ return; } varcurrTable=document.getElementById(tableId); vartheHeader=currTable.outerHTML.substring(0,currTable.outerHTML.indexOf('<TBODY>')+7) vartheFooter=currTable.outerHTML.substring(currTable.outerHTML.indexOf('</TBODY>')-8); //这里的行数是去掉表头表头行和表位行的行数 vartheRows=newArray(sortLength); //对表中的数据进行循环 for(i=startRowNo;i<sortLength+startRowNo;i++) { theRows[i-startRowNo]=newArray(currTable.rows[i].cells[colNo].innerText.toLowerCase(),currTable.rows[i].outerHTML); } if(type.toUpperCase()=='NUMBER') { theRows.sort(compareNumber); } elseif(type.toUpperCase()=='DATE') theRows.sort(compareDate); elseif(type.toUpperCase()=='STRING') theRows.sort(compareString); vartableInfo='' for(j=0;j<theRows.length;j++) { tableInfo+=theRows[j][1]; } isDescending=!isDescending; currTable.outerHTML=theHeader+tableInfo+theFooter; return; } //对数字进行比较 functioncompareNumber(x,y) { //对货币格式的数据进行转化 a=x[0].excludeChars(",").trim(); b=y[0].excludeChars(",").trim(); if(a==""){a=0;} if(b==""){b=0;} if(isDescending) { returnparseFloat(b)-parseFloat(a); } else { returnparseFloat(a)-parseFloat(b); } } //对字符串进行比较 functioncompareString(x,y) { if(isDescending) { if(x[0]>y[0])return-1; elseif(x[0]<y[0])return1; elsereturn0; } else { if(x[0]<y[0])return-1; elseif(x[0]>y[0])return1; elsereturn0; } } //对时间进行比较 functioncompareDate(x,y){ vararr=x[0].split("-"); varstarttime=newDate(arr[0],arr[1],arr[2]); varstarttimes=starttime.getTime(); vararrs=y[0].split("-"); varlktime=newDate(arrs[0],arrs[1],arrs[2]); varlktimes=lktime.getTime(); if(isDescending) { returnlktimes-starttimes; } else { returnstarttimes-lktimes; } } //去除字符串中所有指定的字符串 String.prototype.excludeChars=function(chars){ varmatching=newRegExp(chars,"g"); returnthis.replace(matching,''); } </script>
希望本文所述对大家的javascript程序设计有所帮助。