日期:2014-05-17  浏览次数:20712 次

table js排序
一个table 如下
<table>
<tr><td>分数87</td><td>王军</td></tr>
<tr><td>分数287</td><td>王军</td></tr>
<tr><td>分数33</td><td>李四</td></tr>
<tr><td>分数47</td><td>张三</td></tr>
<tr><td>分数37</td><td>李四</td></tr>
<tr><td>分数86</td><td>王军</td></tr>
</table>

用js 按照名字排序 就是一个名字的挨一起 每行 怎么js排序呢?

------解决方案--------------------
这个不是应该在后台就处理好排序吗
------解决方案--------------------
function sortTable() {
alert(1);
var table = $('table');
var rows = table.find('tr').get();
rows.sort(function(a, b) {
var keyA = $.trim($(a).find('td:first').text()).match(/\d+/);
var keyB = $.trim($(b).find('td:first').text()).match(/\d+/);
if(keyA == "" && keyB != "") {
return -1;
}
if(keyA != "" && keyB == "") {
return 1;
}
if (parseInt(keyA) < parseInt(keyB)) {
return -1;
}
if (parseInt(keyA) > parseInt(keyB)) {
return 1;
}
return 0;
});
$.each(rows, function(index, row) {
table.append(row);
});
}

这个是用jquery实现的
------解决方案--------------------
其实应该在后台处理好的,,,如果非要在前台jsp页面上,你可以给每条数据加上个id,,,然后js中得到数据进行比较,再进行排列。。。
很繁琐就是了。。。
------解决方案--------------------
jquery 有现成的插件:http://tablesorter.com/docs/
JScript code

$("#tableId").tablesorter();//

------解决方案--------------------
探讨

jquery 有现成的插件:http://tablesorter.com/docs/
JScript code

$("#tableId").tablesorter();//

------解决方案--------------------
既然用js,为什么不用js里的grid呢。然后在对应的store里用group对姓名排序。
JScript code
groupField : name

------解决方案--------------------
探讨

jquery 有现成的插件:http://tablesorter.com/docs/
JScript code

$("#tableId").tablesorter();//

------解决方案--------------------
探讨

jquery 有现成的插件:http://tablesorter.com/docs/
JScript code

$("#tableId").tablesorter();//

------解决方案--------------------
支持表头排序,希望可以帮到你

<table onclick="sortColumn(event)">
<thead>
<tr>
<td>分数</td>
<td>姓名</td>
</tr>
 </thead>
 <tbody>
<tr><td>分数87</td><td>王军</td></tr>
<tr><td>分数287</td><td>王军</td></tr>
<tr><td>分数33</td><td>李四</td></tr>
<tr><td>分数47</td><td>张三</td></tr>
<tr><td>分数37</td><td>李四</td></tr>
<tr><td>分数86</td><td>王军</td></tr>
</tbody>
</table>

<SCRIPT language="javascript">
var dom = (document.getElementsByTagName) ? true : false;
var ie5 = (document.getElementsByTagName && document.all) ? true : false;
var arrowUp, arrowDown;