このページの本文へ

  • twitterでつぶやく
  • はてなブックマークに登録
  • del.icio.usに登録
  • livedoorクリップに登録
  • Buzzurlに登録
  • StumbleUponに登録
  • Google Bookmarksに登録
  • Facebookでシェア
  • Yahoo!ブックマークに登録
  • お気に入りに登録
  • 本文印刷

29分でできる! あのサイトの“技”を盗め ― 第26回

普通のtableタグを1行で動く表にするJSライブラリ

2009年06月02日 14時00分更新

文● 古籏一浩、ASCII.jp


HTMLタグの用意とソート処理

 Tablesorterは、tableタグのヘッダー部分とテーブルボディ部分さえ定義されていれば、簡単にソート処理を実現できます。ヘッダー部分は thタグではなく、theadタグで囲まれた部分です。同様に、テーブルボディ部分は tbody タグで囲まれた部分になります。theadタグと tbodyタグが存在しない場合にはTablesorterは機能しません。必ず設定してください。

 tableタグにはスタイルシートクラス名「tablesorter」を指定し、jQueryでアクセスしやすいようにID名「booklist」をつけます。ここまでのHTMLは以下のようになります。


        <table id="booklist" class="tablesorter">
            <thead>
                <tr><th>写真</th><th>書店名</th><th>ジャンル</th><th>最寄駅</th><th>住所</th></tr>
            </thead>
            <tbody>
                <tr><th width="72"><img src="images/shop/thumb/1b.jpg" width="72" height="36" alt="NADiff A/P/A/R/T"></th>
                    <td>NADiff A/P/A/R/T</td>
                    <td>アート/デザイン</td>
                    <td>恵比寿</td>
                    <td>渋谷区恵比寿1-18-4</td></tr>
                <tr><th><img src="images/shop/thumb/2b.jpg" width="72" height="36" alt="SHIBUYA BOOKSELLERS"></th>
                    <td>SHIBUYA BOOKSELLERS</td>
                    <td>アート/デザイン</td>
                    <td>渋谷/代々木八幡</td>
                    <td>渋谷区神山町17-3 </td></tr>
                <tr><th><img src="images/shop/thumb/3b.jpg" width="72" height="36" alt="ブックファースト新宿店"></th>
                    <td>ブックファースト新宿店</td>
                    <td>総合</td>
                    <td>新宿</td>
                    <td>新宿区西新宿1-7-3</td></tr>
                <!-- 中略 -->
            </tbody>
        </table>


 これでHTMLタグの準備は終わりです。次にスクリプトを作成します。といっても非常に簡単で、ソート対象のテーブルを指定して tablesorter()メソッドを呼び出すだけです。特に細かいオプションを指定しなくても自動的にテーブルヘッダーに画像や色などが追加され、クリックしてソートできるようになります。


$("#booklist").tablesorter();


 このスクリプトを外部jsファイル「booklist.js」に記述します。記述する場所は特に決まっていませんが、作例では第24回で取り上げた「ラバランプ型メニュー」(関連記事)処理の次に追記しました。

最初からソートしたい場合は……

 本文で紹介した方法で基本的なソートはできるようになりましたが、場合によっては最初からテーブルの中身をソートして出したいこともあるでしょう。Tablesorterには、最初からソートした状態で表示する機能もあります。

 使い方は簡単で、以下のように sortListオプションに配列形式で、どの列をソートするかを指定します。


    $("#booklist").tablesorter({
        sortList: [[1,0]]
    });

 [1,0]の 1 は、「左から2番目の列」を示します。一番左側の列が0で、順に1、2、3……となります。[1,0]の 0 は、「昇順にソート」を示しています。1 を指定すると降順にソートされます。たとえば、3番目の列を降順にソートして表示したい場合は、sortList: [[2,1]] とすればよいことになります。

この連載の記事

ASCII.jp会員サービス 週刊Web Professional登録

Webディレクター江口明日香が行く

みんなが買ってる最新アイテムはコレだ!

VOCALOID3 スターターIA ARIA ON THE PLANETES

VOCALOID3 スターターIA ARIA ON THE PLANETES

ヤマハ

17,745円〜

24人が購入

Google上位表示 64の法則 (WEB PROFESSIONAL)

Google上位表示 64の法則 (WEB PROFESSIONAL)

アスキー・メディアワークス

2,499円〜

72人が購入

標準HTML5タグリファレンス (WEB PROFESSIONAL)

標準HTML5タグリファレンス (WEB PROFESSIONAL)

アスキー・メディアワークス

2,205円〜

59人が購入

Speck MacBook Air 13型 See Thru - Clear SPK-MBA13-SEE-CLR

Speck MacBook Air 13型 See Thru - Clear SPK-MBA13-SEE-CLR

スペックコンピュータ

4,262円〜

23人が購入

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

jQuery Mobile スマートフォンサイト デザイン入門 (WEB PROFESSIONAL)

アスキー・メディアワークス

2,499円〜

40人が購入

メモリーカード 32GB (PCH-Z321J)

メモリーカード 32GB (PCH-Z321J)

ソニー・コンピュータエンタテインメント

7,772円〜

9人が購入

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

iPhone 4S/4 防指紋性・高光沢機能性フィルム PRO GUARD AF for iPhone 4S/4 / PGAF-IPH4

マイクロソリューション Micro Solution Inc.

61人が購入

Amazon.co.jp