表从多个表中排序

时间:2012-01-18 21:17:22

标签: javascript jquery html tablesorter

我正在使用jquery和jquery插件“tablesorter”(http://tablesorter.com/docs/)对表进行排序。 现在我有困难,我有跟随html(另一种方式是不可能的):

<table class="tablesorter">
<tr>
       <th>ID</th>
       <th>Name</th>
       <th>Age</th>
   </tr>    
</table>
<table>
   <tr>
       <td>1</td>
       <td>Bob</td>
       <td>24</td>
   </tr>
</table>
<table>
   <tr>
       <td>1</td>
       <td>James</td>
       <td>33</td>
   </tr>
</table>
<table>
   <tr>
       <td>5</td>
       <td>PJ</td>
       <td>28</td>
   </tr>
</table>
<table>
   <tr>
       <td>1</td>
       <td>Sue</td>
       <td>39</td>
   </tr>
</table>

每张桌子都是一行。现在我想对这么多表进行排序,因为它是一个表。 有没有解决这个问题的方法?

我在这里找到了一个尝试:http://jsfiddle.net/Mottie/8cg4f/31/ 但是有两个表,脚本只对一个表中的数据进行排序。

2 个答案:

答案 0 :(得分:1)

瞄准要掠夺的牌桌,向下钻取<tr>,将它们移动到需要的位置,然后爬回(现在为空)<table>,将它们扔掉。 jsFiddle

$('table:not(.tablesorter)').find('tr').appendTo('.tablesorter')
    .end().end().remove();

编辑根据评论,我使用<tr> s jsFiddle上的填充模拟了“<td> s之间的间距”。

如果您对最终页面有其他要求,请告诉我您最终想要的内容,并且我可以帮助您创建一个能够生成有效html的解决方案,该html会一致地为所有用户显示。

答案 1 :(得分:0)

尝试这样的事情:

var $table = $(".tablesorter");
$table.nextAll("table").children().appendTo($table).end().remove();
$table.tablesorter();