表格排序——tablesorter.js使用(支持中文排序)

    最近,由於項目須要,對錶格排序作了一下摸索,整理以下:javascript

    1. 首先,可從官網下載tablesorter.js,但並不支持中文的排序,對其源碼進行修改:css

部分源碼:html

function sortText(a, b) {
   return ((a < b) ? -1 : ((a > b) ? 1 : 0));
};
function sortTextDesc(a, b) {
   return ((b < a) ? -1 : ((b > a) ? 1 : 0));
};

修改後:java

function sortText(a,b) {   
   return a.localeCompare(b);   
};   
function sortTextDesc(a,b) {   
   return b.localeCompare(a);   
};

    修改完以後的js可支持中文的排序。jquery

    2.創建一個表格,格式以下:code

<table>orm

    <thead>htm

        <tr><th></th></tr>
排序

    </thead>ip

    <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="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}}});

須要更多例子,能夠到官網研究。

相關文章
相關標籤/搜索