最近,因為項目需要,對表格排序做了一下摸索,整理如下:
1. 首先,可從官網下載tablesorter.js,但并不支持中文的排序,對其源碼進行修改:
部分源碼:
function sortText(a, b) {  return ((a < b) ? -1 : ((a > b) ? 1 : 0));};function sortTextDesc(a, b) {  return ((b < a) ? -1 : ((b > a) ? 1 : 0));};修改后:
function sortText(a,b) {    return a.localeCompare(b);  };  function sortTextDesc(a,b) {    return b.localeCompare(a);  };修改完之后的js可支持中文的排序。
2.建立一個表格,格式如下:
<table> <thead> <tr><th></th></tr> </thead> <tr><td></td></tr></table>
<html><head>  <title>jquery.tablesorter</title>  <script language="JavaScript" type="text/javascript" src="jquery-1.3.2.min.js"></script>  <script type="text/javascript" src="/manage/plugin/tablesorter/tablesorter.js"></script>  <link rel="stylesheet" href="/manage/plugin/tablesorter/blue/style.css type=" rel="external nofollow" text/css" />  <script type="text/javascript">    $("#mytable").tablesorter();  </script></head><body><table id="mytable" border="1" class="tablesorter">  <thead>    <tr>      <th class="header">First Name</th>         <th class="header">Last Name</th>         <th class="header">Age</th>         <th class="header">Total</th>         <th class="header">Discount</th>         <th class="header">Date</th>      <th class="header">State</th>    </tr>  </thead>  <tr>       <td>Peter</td>       <td>Parker</td>       <td>28</td>       <td>$9.99</td>       <td>20%</td>          <td>Jul 6, 2006 8:14 AM</td>    <td>已審核</td>   </tr>     <tr>       <td>John</td>       <td>Hood</td>       <td>33</td>       <td>$19.99</td>       <td>25%</td>          <td>Dec 10, 2002 5:14 AM</td>     <td>已審核</td>     </tr>     <tr>       <td>Clark</td>       <td>Kent</td>       <td>18</td>       <td>$15.89</td>       <td>44%</td>       <td>Jan 12, 2003 11:14 AM</td>     <td>已作廢</td>     </tr>     <tr>       <td>Bruce</td>       <td>Almighty</td>       <td>45</td>       <td>$153.19</td>       <td>44%</td>          <td>Jan 18, 2001 9:12 AM</td>    <td>待審核</td>   </tr>     <tr>       <td>Bruce</td>       <td>Evans</td>       <td>22</td>       <td>$13.19</td>       <td>11%</td>       <td>Jan 18, 2007 9:12 AM</td>    <td>已生效</td>   </tr></table></body></html>頁面顯示如圖所示:

點擊表頭,就能夠排序。
注:
1).若是第五列、第六列不需要排序,代碼如下:
$("#mytable").tablesorter({headers:{4:{sorter:false},5:{sorter:false}}});(順便需要去掉對應列的樣式)
2).若是第五列需要自定義排序方式,第六列不排序,代碼如下:
$.tablesorter.addParser({  id: "grade", //指定一個唯一的ID  is: function(s){    return false;  },  format: function(s){    return s.toLowerCase().replace(/已作廢/,1).replace(/待審核/,2).replace(/已審核/,3).replace(/已生效/,4); //將中文換成數字  },  type: "numeric" //按數值排序});$("#mytable").tablesorter({headers:{4:{sorter:"grade"},5:{sorter:false}}});需要更多例子,可以到官網研究。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答