JavaScript

超轻量级php框架startmvc

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

更新时间:2020-04-22 00:45:01 作者:startmvc
最近,因为项目需要,对表格排序做了一下摸索,整理如下:1.首先,可从官网下载tablesorte

最近,因为项目需要,对表格排序做了一下摸索,整理如下:

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

需要更多例子,可以到官网研究。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

tablesorter.js表格排序 tablesorter.js tablesorter.js中文排序