本文實例講述了js表頭排序實作方法。分享給大家供大家參考。 具體實作方法如下: 複製程式碼 程式碼如下: <br /> //是否遞減排序<br /> var isDescending = true;<br /> /*****************************************<br /> * 要排序的行必須放到<tbody>標籤中<br /> * tableId:排序表格ID<br /> * colNo:排序的列號,即第幾列,從0開始<br /> * startRowNo:排序的開始行號,從0開始<br /> * sortLength:要排序的行數,<br /> * type:排序列的類型<br /> */<br /> function sort(tableId, colNo ,startRowNo, sortLength, type)<br /> {<br /> //如果要排序的行數是1或是0,則不對其進行排序運算<br /> if(sortLength<=1){<br /> return;<br /> }<br /> var currTable = document.getElementById(tableId);<br /> var theHeader = currTable.outerHTML.substring(0, currTable.outerHTML.indexOf('<TBODY>') 7)<br /> var theFooter = currTable.outerHTML.substring(currTable.outerHTML.indexOf('')-8);<br /> //這裡的行數是去除表頭表頭行和表位行的行數<br /> var theRows = new Array(sortLength);<br /> //對錶中的資料進行循環<br /> for(i=startRowNo; i<sortLength startRowNo; i )<br /> {<br /> theRows[i-startRowNo] = new Array(currTable.rows[i].cells[colNo].innerText.toLowerCase(), currTable.rows[i].outerHTML);<br /> }<br /> if(type.toUpperCase()=='NUMBER')<br /> {<br /> theRows.sort(compareNumber);<br /> }<br /> else if(type.toUpperCase()=='DATE')<br /> theRows.sort(compareDate);<br /> else if(type.toUpperCase()=='STRING')<br /> theRows.sort(compareString);<br /> var tableInfo=''<br /> for(j=0; j<theRows.length; j )<br /> {<br /> tableInfo =theRows[j][1];<br /> }<br /> isDescending = !isDescending;<br /> currTable.outerHTML= theHeader tableInfo theFooter;<br /> return ;<br /> }<br /> //對數字進行比較<br /> function compareNumber(x, y)<br /> {<br /> //將貨幣格式的資料轉換<br /> a = x[0].excludeChars(",").trim();<br /> b = y[0].excludeChars(",").trim();<br /> <br /> if(a==""){a=0;}<br /> if(b==""){b=0;}<br /> if(isDescending)<br /> {<br /> return parseFloat(b) - parseFloat(a);<br /> }<br /> else<br /> {<br /> return parseFloat(a) - parseFloat(b);<br /> }<br /> }<br /> //比較字串<br /> function compareString(x, y)<br /> {<br /> if(降序)<br /> {<br /> if(x[0]>y[0]) return -1;<br /> else if(x[0]<y[0]) return 1;<br /> 否則為 0;<br /> }<br /> 其他<br /> {<br /> if(x[0]<y[0]) return -1;<br /> 否則(x[0]>y[0]) 回傳 1;<br /> 否則為 0;<br /> }<br /> }<br /> //對時間進行比較<br /> 函數compareDate(x,y){<br /> var arr=x[0].split("-"); <br /> var starttime=new Date(arr[0],arr[1],arr[2]); <br /> var starttime=starttime.getTime(); <br /> var arrs=y[0].split("-"); <br /> var lktime=new Date(arrs[0],arrs[1],arrs[2]); <br /> var lktimes=lktime.getTime();<br /> <br /> if(降序)<br /> {<br /> 返回 lktimes - 開始時間;<br /> }<br /> 其他<br /> {<br /> 返回開始時間 - lktimes;<br /> }<br /> }<br /> //刪除字串中所有指定的字串<br /> String.prototype.excludeChars = function(chars){<br /> var 匹配 = new RegExp(chars , "g") ;<br /> return this.replace(matching , '') ;<br /> }<br /> </腳本><br /> 希望本文對大家介紹的javascript程式設計有幫助。