tablesorter の sortList オプションでページ表示時の並び基準を指定

jQuery の tablesorter プラグインの「blue」テーマを使った、列の値を基準に、項目を並べ替えられる表(テーブル)において、ページを読み込んだとき、どの列を基準に並べるかを指定する方法。ページを読み込んだときの並び替え基準の指定には、「sortList」オプションを使う。

実装例(サンプル)

商品名 id 値段 評価 デザイン
A商品 2256 8800 54 73
B商品 2011 5900 71 52
C商品 7025 15000 97 100
D商品 1023 8800 62 63
E商品 5123 8800 62 73

実装例(サンプル)の動作について

  • ページ読み込み時(ページ表示時)、まず、「値段」を基準に昇順で並べ替え、次に、「評価」を基準に降順で並べ替え、最後に、「デザイン」を基準に降順で並べ替える。
  • 表の列の見出し(「商品名」「ID」「値段」「評価」「デザイン」)をクリックすると、その列の値を基準に、商品を並べ替える。昇順の列は降順に並べ替え、降順の列は昇順に並べ替え、昇順でも降順でもない列は昇順に並べ替える。
  • 列の見出しにある「表の列の見出し-並べ替え-昇順降順」が、昇順で並べたときは「表の列の見出し-並べ替え-昇順」に変わり、降順で並べたときは「表の列の見出し-並べ替え-降順」に変わる。
  • 「値段」で並べ替えた後、キーボードの「Shift」キーを押したまま、「評価」をクリックすると、「値段」が同じ商品だけ、さらに「評価」を基準に並べ替える。この例の場合、8800円の商品3つを、さらに「評価」に基づいて並べ替える。
  • 並べ替えの基準にした列の見出しの背景色は、 この色 に変わる。複数の列を基準にしたときは、複数の見出しの背景色が、 この色 に変わる。

実装例(サンプル)のソースコード

読み込み

パスは、それぞれ、アップロードした場所を指定する。

<link rel="stylesheet" type="text/css" href="tablesorter/themes/blue/style.css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.tablesorter.js"></script>

JavaScript

<script>
<!--
jQuery( function() {
    jQuery( '#jquery-tablesorter-table' ) . tablesorter( {
        sortList: [ [ 2, 0 ], [ 3, 1 ], [ 4, 1 ] ]
    } );
} );
// -->
</script>
  1. [ 2, 0 ]:3つ目の列を基準に昇順で並び替え。
  2. [ 3, 1 ]:4つ目の列を基準に降順で並び替え。
  3. [ 4, 1 ]:5つ目の列を基準に降順で並び替え。

CSS

<style>
<!--
#jquery-tablesorter-table {
    width: 500px !important;
}
#jquery-tablesorter-table th {
    color: #333333 !important;
    padding: 0.5em 1em !important;
}
#jquery-tablesorter-table td {
    color: #333333 !important;
    padding: 0.5em 1em 0.5em 2em !important;
}
#jquery-tablesorter-table th, #jquery-tablesorter-table td {
    border: 1px solid #d1d1d1;
}
-->
</style>

HTML

<table id="jquery-tablesorter-table" class="tablesorter">
<thead>
<tr>
    <th>商品名</th>
    <th>id</th>
    <th>値段</th>
    <th>評価</th>
    <th>デザイン</th>
</tr>
</thead>
<tbody>
<tr>
    <td>A商品</td>
    <td>2256</td>
    <td>8800</td>
    <td>54</td>
    <td>73</td>
</tr>
<tr>
    <td>B商品</td>
    <td>2011</td>
    <td>5900</td>
    <td>71</td>
    <td>52</td>
</tr>
<tr>
    <td>C商品</td>
    <td>7025</td>
    <td>15000</td>
    <td>97</td>
    <td>100</td>
</tr>
<tr>
    <td>D商品</td>
    <td>1023</td>
    <td>8800</td>
    <td>62</td>
    <td>63</td>
</tr>
<tr>
    <td>E商品</td>
    <td>5123</td>
    <td>8800</td>
    <td>62</td>
    <td>73</td>
</tr>
</tbody>
</table>

スポンサード リンク

カテゴリー: JavaScript, jQuery, tablesorter, プラグイン, パーマリンク