JQuery插件tablesorter表格排序?qū)崿F(xiàn)過程解析
簡介
Tablesorter 是一個(gè)用來直接在瀏覽器上對(duì)表格數(shù)據(jù)進(jìn)行排序的jQuery插件,無需再次刷新頁面,支持多種單元格數(shù)據(jù)類型,例如數(shù)值、字符串、日期和自定義排序。
使用說明
引入jquery.tablesorter
所用文件下載:
jquery-2.0.2.min.js
jquery.tablesorter.min.js tablesorert官網(wǎng)
修改表格
html如下:
<table class="table table-striped table-bordered table-hover tablesorter" id="tbList">
注:為table添加id和class,class必有tablesorter,id可有可無.
css: (詳見文章末尾詳細(xì)代碼)
定義表格樣式:表頭、升序、降序等樣式。
排序?qū)崿F(xiàn)
點(diǎn)擊表頭時(shí),即可對(duì)其相應(yīng)的列進(jìn)行排序;
js代碼如下:
<script type="text/javascript"> $("#tbList").tablesorter(); //無id時(shí),可以用 $(".tablesorter").tablesorter(); </script>
效果如圖:
降序
升序
數(shù)據(jù)后帶有漢字
對(duì)于如圖所示的序號(hào)、年齡、進(jìn)度等各類數(shù)字類型的數(shù)據(jù),排序功能毫無差錯(cuò)。
但是,對(duì)于如圖所示的課程數(shù)、時(shí)長、分?jǐn)?shù)等數(shù)據(jù)后帶有漢字的數(shù)據(jù),排序沒什么效果,例如下圖:
降序:
升序:
對(duì)于這種情況,可以做如下處理:
js代碼
//自定義排序 $.tablesorter.addParser({ id: "num", //指定一個(gè)唯一的ID is: function(s){ return false; }, format: function(s){ return s.substring(0,s.length-2);//去除后面的漢字 }, type: "numeric" //按數(shù)值排序 }); $("#tbList").tablesorter({headers:{5:{sorter:"num"},6:{sorter:"num"},7:{sorter:"num"}}}); //表格第六、七、八列
時(shí)間格式:xx時(shí)xx分xx秒
如上圖所示,顯然要按時(shí)間長短來排序,這種數(shù)據(jù),比較麻煩。
對(duì)于這種情況,可以做如下處理:
js代碼
$.tablesorter.addParser({ id: "num", //指定一個(gè)唯一的ID is: function(s){ return false; }, format: function(s){ //對(duì) xx時(shí)xx分xx秒 數(shù)據(jù)的處理 var hourNum= parseInt(s.substring(0,2));//xx時(shí) var minuteNum= parseInt(s.substring(4,6));//xx分 var secondsNum= parseInt(s.substring(7,9));//xx秒 //將時(shí)間換算為秒 var seconds=hourNum*3600+minuteNum*60+secondsNum; return seconds; }, type: "numeric" //按數(shù)值排序 }); $(".tablesorter").tablesorter({headers:{6:{sorter:"num"}}});//表格第七列
排序效果如圖:
降序
升序
代碼
html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>tablesorter</title> <link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap.min.css" rel="external nofollow" > <link rel="stylesheet" href="css/tablesorterStyle.css" rel="external nofollow" > </head> <body> <table class="table table-striped table-bordered table-hover tablesorter" id="tbList"> <thead> <tr > <th width="8%"class="header">序號(hào)</th> <th width="15%"class="header">用戶名</th> <th width="11%"class="header">姓名</th> <th width="11%"class="header">性別</th> <th width="11%"class="header">年齡</th> <th width="11%"class="header">課程數(shù)</th> <th width="11%"class="header">時(shí)長</th> <th width="11%"class="header">分?jǐn)?shù)</th> <th width="11%"class="header">進(jìn)度</th> </tr> </thead> <tbody id="tbody-member-course-summary"> <tr> <td>1</td> <td>111test1</td> <td>華東區(qū)</td> <td>女</td> <td>23</td> <td>20 門</td> <td>32 分</td> <!--<td>05小時(shí)32分47秒</td>--> <td>86 分</td> <td>79%</td> </tr> <tr> <td>2</td> <td>二</td> <td>李二梅</td> <td>男</td> <td>24</td> <td>4 門</td> <td>102 分</td> <!--<td>03小時(shí)02分00秒</td>--> <td>68 分</td> <td>91%</td> </tr> <tr> <td>3</td> <td>zhaoliu</td> <td>趙六</td> <td>男</td> <td>30</td> <td>18 門</td> <td>57 分</td> <!--<td>10小時(shí)57分00秒</td>--> <td>84 分</td> <td>37%</td> </tr> <tr> <td>4</td> <td>iii</td> <td>aiaia</td> <td>男</td> <td>20</td> <td>14 門</td> <td>92 分</td> <!--<td>00小時(shí)34分00秒</td>--> <td>79 分</td> <td>9%</td> </tr> </tbody> <tfoot id="tfoot-member-course-summary"> <tr> <td>合計(jì):</td> <td> -- 人</td> <td> </td> <td> </td> <td> </td> <td> -- 門</td> <td> -- </td> <td> -- </td> <td> -- %</td> </tr> </tfoot> </table> <script type="text/javascript" src='js/jquery-2.0.2.min.js'></script> <script type="text/javascript" src='plugin/tablesorter/jquery.tablesorter.min.js'></script> <!-- <script type="text/javascript" src='plugin/tablesorter/jquery.tablesorter.js'></script>--> <script type="text/javascript" src='js/mytablesorter.js'> </script> </body> </html>
css
table.tablesorter{ font-family: arial; font-size: 8pt; width: 100%; text-align: left; } /*表頭的樣式*/ thead{ background:#ccc; color:#ff0000; } .header{ background-image: url('../plugin/tablesorter/themes/blue/bg.gif'); background-repeat: no-repeat; background-position: center right; cursor: pointer; } /*降序時(shí)樣式*/ th.headerSortDown{ color:#00ff00; background-color: #aaa; background-image: url('../plugin/tablesorter/themes/blue/desc.gif'); background-repeat: no-repeat; background-position: center right; cursor: pointer; } /*升序時(shí)樣式*/ th.headerSortUp{ color:#0000ff; background-color: #aaa; background-image: url('../plugin/tablesorter/themes/blue/asc.gif'); background-repeat: no-repeat; background-position: center right; cursor: pointer; }
js
// $("#tbList").tablesorter(); //自定義排序 $.tablesorter.addParser({ id: "num", //指定一個(gè)唯一的ID is: function(s){ return false; }, format: function(s){ return s.substring(0,s.length-2); }, type: "numeric" //按數(shù)值排序 }); $("#tbList").tablesorter({headers:{6:{sorter:"num"},7:{sorter:"num"},8:{sorter:"num"}}}); // //自定義排序 // $.tablesorter.addParser({ // id: "num", //指定一個(gè)唯一的ID // is: function(s){ // return false; // }, // format: function(s){ // //對(duì)xx時(shí)xx分xx秒 數(shù)據(jù)的處理 // var hourNum= parseInt(s.substring(0,2));//xx時(shí) // var minuteNum= parseInt(s.substring(4,6));//xx分 // var secondsNum= parseInt(s.substring(7,9));//xx秒 // //將時(shí)間換算為秒 // var seconds=hourNum*3600+minuteNum*60+secondsNum; // return seconds; // }, // type: "numeric" //按數(shù)值排序 // }); // $("#tbList").tablesorter({headers:{6:{sorter:"num"}}}); //表格第七列
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 深入研究jQuery圖片懶加載 lazyload.js使用方法
- jquery實(shí)現(xiàn)異步加載圖片(懶加載圖片一種方式)
- 詳解jQuery lazyload 懶加載
- jQuery+ajax實(shí)現(xiàn)滾動(dòng)到頁面底部自動(dòng)加載圖文列表效果(類似圖片懶加載)
- 基于jquery的圖片懶加載js
- jQuery插件實(shí)現(xiàn)圖片輪播效果
- jQuery彈框插件使用方法詳解
- jQuery實(shí)現(xiàn)的分頁插件完整示例
- viewer.js一個(gè)強(qiáng)大的基于jQuery的圖像查看插件(支持旋轉(zhuǎn)、縮放)
- jquery插件懶加載的示例
相關(guān)文章
jQuery實(shí)現(xiàn)注冊(cè)會(huì)員時(shí)密碼強(qiáng)度提示信息功能示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)注冊(cè)會(huì)員時(shí)密碼強(qiáng)度提示信息功能,涉及jQuery事件響應(yīng)及字符串的遍歷、運(yùn)算與判斷等相關(guān)操作技巧,需要的朋友可以參考下2017-09-09Jquery 實(shí)現(xiàn)表格顏色交替變化鼠標(biāo)移過顏色變化實(shí)例
Jquery 實(shí)現(xiàn)表格顏色交替變化,點(diǎn)擊選中行,鼠標(biāo)移過顏色變化效果附演示代碼 ,喜歡的朋友可以參考下2013-08-08基于jQuery實(shí)現(xiàn)表格數(shù)據(jù)的動(dòng)態(tài)添加與統(tǒng)計(jì)的代碼
使用jQuery可以大大減輕工作量,在實(shí)際開發(fā)中,使用了jQuery的clone(true)函數(shù),該函數(shù)可以創(chuàng)建一個(gè)jQury對(duì)象的副本,并且參數(shù)為true時(shí),可以復(fù)制該元素的所有事件處理函數(shù)。2011-01-01Jquery+ajax請(qǐng)求data顯示在GridView上(asp.net)
Jquery ajax請(qǐng)求data顯示在asp.net中GridView控件上,需要的朋友可以參考下。2010-08-08jQuery+JSON+jPlayer實(shí)現(xiàn)QQ空間音樂查詢功能示例
本文為大家介紹下jQuery+JSON+jPlayer實(shí)現(xiàn)QQ空間音樂查詢,具體的實(shí)現(xiàn)過程感興趣的朋友可以了解下哈,希望對(duì)大家有所幫助2013-06-06jquery彈窗時(shí)禁止body滾動(dòng)條滾動(dòng)的例子
今天小編就為大家分享一篇jquery彈窗時(shí)禁止body滾動(dòng)條滾動(dòng)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-09-09jQuery插件cxSelect多級(jí)聯(lián)動(dòng)下拉菜單實(shí)例解析
這篇文章主要為大家詳細(xì)解析了jQuery插件cxSelect多級(jí)聯(lián)動(dòng)下拉菜單實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06jQuery dateRangePicker插件使用方法詳解
這篇文章主要為大家詳細(xì)介紹了jQuery dateRangePicker插件的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07