當(dāng)前位置:軟件學(xué)堂 > 資訊首頁 > 網(wǎng)絡(luò)編程 > 編程其他 > JS代碼實(shí)現(xiàn)單擊表頭實(shí)現(xiàn)表格排序

JS代碼實(shí)現(xiàn)單擊表頭實(shí)現(xiàn)表格排序

2012/10/30 14:06:37作者:佚名來源:網(wǎng)絡(luò)

移動(dòng)端

【實(shí)例名稱】

單擊表頭實(shí)現(xiàn)表格排序

【實(shí)例描述】

為了讓用戶可以全方位地了解表格數(shù)據(jù),有些網(wǎng)站提供單擊表頭實(shí)現(xiàn)表格排序的功能。本例將學(xué)習(xí)如何實(shí)現(xiàn)這種功能。

【實(shí)例代碼】

<html> <head> <title>單擊表格的表頭,測(cè)試排序-學(xué)無憂(denvermotorcycleaccidentlawyer.com)</title> <script language="javascript"> function sortTable(sortType) {     var tb=document.getElementsByTagName("table")[0];           //獲取要排序的表格     var arr=[];                                                 //初始數(shù)組     for (var i=1;i<tb.rows.length;i++)                          //遍歷表格中每一行         arr.push(tb.rows[i].cells[sortType].innerText);         //將列的數(shù)據(jù)添加到數(shù)組中     sortType==0 ? arr.sort(function (a,b) {return a-b}) : arr.sort(); //數(shù)組排序     for (var j=1;j<tb.rows.length;j++)     tb.rows[j].cells[sortType].innerText=arr[j-1];                  //輸出排序后的結(jié)果 } </script> </head> <body> <table border="1">     <tr><th onclick="sortTable(0);">按數(shù)字排序</th><th onclick="sortTable(1);">按字符串排序</th></tr>     <tr><td>563</td><td>張三</td></tr>     <tr><td>425</td><td>abc</td></tr>     <tr><td>452</td><td>歷史</td></tr>     <tr><td>548</td><td>北京</td></tr>     <tr><td>42</td><td>xxx</td></tr>     <tr><td>137</td><td>無zhoi</td></tr> </table> </body> <html>

【運(yùn)行效果】

運(yùn)行效果

【難點(diǎn)剖析】

本例使用“th”設(shè)置表格的表頭,并為其添加“onclick”事件。排序的技巧是先遍歷表格的每行,然后將對(duì)應(yīng)列的數(shù)據(jù)保存到數(shù)組中:如果是字符串的排序,則可以調(diào)用數(shù)組對(duì)象的“sort”方法,直接生成排序結(jié)果;如果是數(shù)值型數(shù)據(jù),則使用自定義的“function(a,b){return a_b}”方法。

【源碼下載】

如果你不愿復(fù)制代碼及提高代碼準(zhǔn)確性,你可以點(diǎn)擊:表格的寬度固定后內(nèi)容自動(dòng)換行 進(jìn)行本實(shí)例源碼下載 

標(biāo)簽: JS代碼  表格