2012-01-18 9 views
0

私は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> 

は1行です。今は、このテーブルを1つのテーブルとして並べ替える必要があります。 この問題の解決策はありますか?

私はここで試行を見つけました:http://jsfiddle.net/Mottie/8cg4f/31/ しかし、onyテーブルが2つあり、スクリプトは1つのテーブルのデータのみをソートします。

+0

...いいえ良いマークアップ>: – Raynos

+0

申し訳ありません、初めて投稿フォームを使用しました... – htw

答えて

0

このような何か試してみてください:

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

あなたの行動がターゲットに依存しない限り反復を避けてください。評価するロジックがない場合は、ケースごとに作業をする理由はありません – Sinetheta

1

ターゲットあなたは、略奪<tr> sまでドリルダウンし、彼らがする必要がどこに移動し、(今は空)まで戻って登るしたいテーブルを<table>それを捨ててください。 jsFiddle

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

EDIT:コメントのとおり、私は<td>jsFiddleのパディングを使用して "<tr> sの間の間隔を" シミュレートしています。

最終ページの要件が他にもある場合は、最終的に何をしたいのかをお知らせください。すべてのユーザーに一貫して表示される有効なHTMLを生成するソリューションを作成するのに役立ちます。

+0

答えがありがとうございます:これは解決策ではありません:/ CSSスタイルのため(私はそれぞれの間にパディングしたい)、私は位置を変更する必要があります – htw

+0

残念ながら、これは許可されていません。これらは「の間のスペース」のようなものではありません。テーブル要素を除く(表自体を除く)、マージンを持つことはできません。しかし、あなたは​​にパディングを置くことでこれをシミュレートすることができます。pを追加するすべて​​の上部と下部に追加することは機能的にはの間にスペースを置くことと同じです。あなたが望む結果が何であるかを教えていただければ、無効なhtmlを作成しようとするのではなく、解決策を提示することができます。 – Sinetheta

関連する問題