排序表无法正常工作

时间:2017-07-19 15:18:23

标签: javascript jquery sorting tablesorter

我正在使用一个名为tablesorter的插件。我正在尝试使用rowspan行对表进行排序。但是,它不会正确排序所有列。这是jsFiddle

<table cellspacing="1" class="tablesorter">
  <thead>
    <tr>
      <th>First Name</th>
      <th>Age</th>
      <th>Country</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Peter</td>
      <td>28</td>
      <td rowspan="2" style="vertical-align:middle">AAA</td>
    </tr>
    <tr class="expand-child">
      <td>John</td>
      <td>33</td>
    </tr>
    <tr>
      <td>Clark</td>
      <td>18</td>
      <td>BBB</td>
    </tr>

    <tr>
      <td>Bruce</td>
      <td>22</td>
      <td>CCC</td>
    </tr>
  </tbody>
</table>

JS

$('table').tablesorter();

年龄列没有正确排序,我如何才能使所有列排序正确?

2 个答案:

答案 0 :(得分:4)

问题(在视觉上,而不是技术上)是您标记John作为Peter的孩子。因此,只考虑数字28,18和22进行排序。 33从来没有考虑过排序。

如下所示更改前两行似乎可以解决问题

<tr>
  <td>Peter</td>
  <td>28</td>
  <td>AAA</td>
</tr>
<tr>
  <td>John</td>
  <td>33</td>
</tr>

从您的HTML外观和排序要求来看,您似乎不需要rowspanexpand-child类。也许你让rowspan混淆了2行的相同值?

答案 1 :(得分:0)

你想要初步排序吗?

按年龄排序

$('table').tablesorter({sortList: [[1,0]]});

按名字和年龄排序

$('table').tablesorter({sortList: [[0,0], [1,0]]});