表格排序
比tablesorter功能少 但灵活 可以根据实际需求做调整
本来用tablesorter做需求 但改的太费劲了 自己做了一个
<head>中添加
<head>
<title></title>
<link rel="stylesheet" href="style.css" type="text/css" media="print, projection, screen" />
<script type="text/javascript" src="jquery-1.7.1.js"></script>
<script type="text/javascript" src="tableOrder.js"></script>
</head>
表格形式 每行的 <td style="display: none">1</td> 是用来还原本来顺序的
<table id="table1" width="100%">
<thead>
<tr>
<th style="display: none">
</th>
<th id="t1h1">
表1-排序1
</th>
<th id="t1h2">
表1-排序2
</th>
<th id="t1h3">
表1-排序3
</th>
</tr>
</thead>
<tbody>
<tr>
<td style="display: none">
1
</td>
<td>
200
</td>
<td>
300
</td>
<td>
500
</td>
</tr>
<tr>
<td style="display: none">
2
</td>
<td>
100
</td>
<td>
400
</td>
<td>
200
</td>
</tr>
<tr>
<td style="display: none">
3
</td>
<td>
100
</td>
<td>
600
</td>
<td>
800
</td>
</tr>
<tr>
<td style="display: none">
4
</td>
<td>
300
</td>
<td>
500
</td>
<td>
100
</td>
</tr>
</tbody>
</table>
合并的表头也可以
<thead>
<tr>
<th style="display: none">
</th>
<th colspan="2">
<table style=" width:100%">
<tr>
<td id="Td1" colspan="2">
头部
</td>
</tr>
<tr>
<td id="t2h1">
表2-排序1
</td>
<td id="t2h2">
表2-排序2
</td>
</tr>
</table>
</th>
<th id="t2h3">
表2-排序3
</th>
</tr>
</thead>
js添加
var openOrder; //所有功能总开关
var tablearr = ["table1"]; //注册的表id
var thidarr = [["t1h1", "t1h2", "t1h3"]]; //被注册表中的激发排序的列id
var tdarr = [[1, 2, 3]]; //对应激发列顺序的排序列号(不从0开始 1就是1列)
var thclass0 = "header"; //正常列的样式名
var thclass1 = "headerSortUp"; //1次排序列的样式名
var thclass2 = "header"; //2次排序列的样式名 与thclass0名一样则取消2次排序(headerSortDown)
var orderFs1 = 1; //1次排 方式 0原序, 1倒序, 2正序
var orderFs2 = 0; //2次排 取消2次排序则为正常列方式 0原序, 1倒序, 2正序
var h_i_d = ["hidden"]; //input-hidden的id 刷新页面时 记录排序状态(页面要写对应id的hidden) 不赋值则关闭记录功能
/*可选函数
//a-排序的表id, b-被点击列id, c-排a表中的第c列
自定义函数用这3个参数做文章
//还原排序时自定义函数
function x_x_x(a,b,c) {
....
}
//1排序时自定义函数
function y_y_y(a,b,c) {
.....
}
//2排序时自定义函数
function z_z_z(a,b,c) {
......
}
//排序依据string处理函数
s-是排序列td中的innerText 处理后返回s 后面依据返回的s排序
function g_g_g(s) {
return s;
}
*/
第一次点击 被点元素class变thclass1 激发tdarr中对应列号 按orderFs1方式排序
第二次点击 被点元素class变thclass2 激发tdarr中对应列号 按orderFs2方式排序
再点来回反复 此中情况可以不加<td style="display: none">1</td>隐藏列
但不加的话tdarr中从0算对应列
如果thclass0与thclass2相同 第一列要<td style="display: none">1</td>隐藏列
那么第二次点击 被点元素class变thclass0(thclass2) 激发隐藏列 0号列 按orderFs2方式排序
就可以还原了
内有2个例子
下载连接: 自制js表格排序