2017-07-19 27 views
-1

私は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(); 

age列は正しく並べ替え、どのように私はそれが正しく並べ替えすべての列となるようにするんではないでしょうか?

+2

私にとってデモは正しく分類されません。年齢属性は、発注が降順であるときに「28-> 33-> 8-> 22」としてソートされます。 –

+0

@ShanevandenBogaardと同じものが見られます。すべての並べ替えオプションは、降順の年齢を除いて正しく動作します。 –

+0

@RoryMcCrossan:降順に並べ替えます.33は、前にではなく28に続いています。 [Maazは理由を理解しました](https://stackoverflow.com/a/45195312/157247)。 –

答えて

0

初期ソートを行いますか?

ソート最初の名前と年齢でソート

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

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

によって(視覚的、技術的にではない)の問題は、あなたが Peterの子として Johnマークしているということです。したがって、ソートのために番号28,18、および22のみが考慮されます。 33は決して並べ替えのために考慮されません。次のように最初の2つの行を変更

は、あなたのHTMLとあなたのソート要件のルックスからは問題

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

を解決するように見えるあなたがrowspanexpand-childクラスを必要とするように、見えません。たぶん、rowspanと2行の同じ値を混同しているのでしょうか?

+0

これは私がより大きな問題のために作った非常に簡単な例です。私はrowspanを持っている必要があり、年齢に基づいてそれをソートする必要があります – user2896120

+0

次に、あなたの現在の例は正常に動作しています。親と一緒に子供を分類することは期待できません。子供は親に固執するでしょう。 –

+0

子供は親の中でソートしなければなりません – user2896120

関連する問題