今回はHTMLのテーブルの内容を簡単にソートできるライブラリ「jquery tablesorter」を紹介します。
このライブラリでtableを指定するだけでソート機能のついたtableに早変わり!
非常に簡単なのでおすすめします。
記事の途中でサンプルも公開しているので御覧ください!
jquery tablesorterを速攻で使う
まず上記リンクからtablesorterをダウンロードします。
zipを解凍すると色々入っていますが使うのはjquery.tablesorter.min.jsのみです。
使用するまでのステップ。
- jQueryを読み込む
- jquery.tablesorter.min.jsを読み込む
- tableタグにidを振る(tablesorterで指定する為)
- 対象テーブルは必ず最初の行でtheadタグを使用し、中身をthタグにする
- thead以下の行はtbodyを使用する
- tableタグに降ったidを指定してtablesorter()を走らせる
4番目、初めて使った時に少しだけハマりましたw
theadが抜けてたりしてるとtablesorterが動かないのでtheadは必ず記述してください。
$(function() {
$('#sorter').tablesorter();
});<table id="sorter">
<thead>
<tr>
<th>ユーザID</th>
<th>名前</th>
<th>名前(かな)</th>
<th>年齢</th>
<th>住所</th>
</tr>
</thead>
<tbody>
<tr>
<td>abc123</td>
<td>田中</td>
<td>たなか</td>
<td>25歳</td>
<td>東京都</td>
</tr>
<tr>
<td>abababa</td>
<td>鈴木</td>
<td>すずき</td>
<td>30歳</td>
<td>青森県</td>
</tr>
</tbody>
</table>これによりtheadのセルにクリックイベントが付与され、クリックするだけでその列を昇順/降順でソートするようになります。
ソート機能を付けたtableを装飾する!
ただ、これだけでは見た目上ソートができるかどうか判別しにくい!
という事でjquery tablesorterにはCSSとアイコンがついています!
解凍したフォルダのthemeフォルダ以下にblueとgreenフォルダがあり、
これがそれぞれのスタイルになります。
中にはアイコンとcssが入っているのでgifとcssを任意のフォルダに持って行き、CSSをHTMLで読み込みます。
(この時、.svnとzipファイルは不要です)
そして対象のテーブルタグのclassにtablesorterを追加してください。
<table id="sorter" class="tablesorter"><!-- クラスを追加する -->
<thead>
<tr>
<th>ユーザID</th>
<th>名前</th>
<th>名前(かな)</th>
<th>年齢</th>
<th>住所</th>
</tr>
</thead>
<tbody>
<tr>
<td>abc123</td>
<td>田中</td>
<td>たなか</td>
<td>25歳</td>
<td>東京都</td>
</tr>
<tr>
<td>abababa</td>
<td>鈴木</td>
<td>すずき</td>
<td>30歳</td>
<td>青森県</td>
</tr>
</tbody>
</table>これで自動的にテーブルが格好いいことになります。
今回blueのテーマを使用したサンプルを作成しました。
jquery tablesorterで適当に作ってみた
一部の列だけソート機能を無効化する
この列だけソート機能をつけて、この列はソートさせたくない!なんて時はheadersプロパティを使用すると無効化できます。
$(function() {
$('#sorter').tablesorter({
headers: {
0: {sorter:false}
}
});
});添字の0は左から0番目の列ということを意味します。
その添字に対して{sorter:false}とすることで、一番左の列がソートできなくなります。
以上、tablesorterの簡単な使い方でした!
簡単にtableへsort機能を実装することができるので是非使ってみてください!




コメント