質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

8096閲覧

jqueryのdataTablesで、特定行だけはソートしたくない

coffee

総合スコア139

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2015/03/03 10:18

今、下記のようなテーブルをdataTablesを使ってソートしています。

lang

1<table class="table hoge"> 2<thead> 3 <tr> 4 <th>利用月</th> 5 <th>金額</th> 6 </tr> 7</thead> 8<tbody> 9 <tr> 10 <td>1月</td> 11 <td>100円</td> 12 </tr> 13 <tr> 14 <td>2月</td> 15 <td>500円</td> 16 </tr> 17 <tr> 18 <td>合計</td> 19 <td>600円</td> 20 </tr> 21</tbody> 22</table>

ここで表示に使ってるデータは、DBから持ってきて、アプリケーション側で合計値なども計算して表示してます。
ただ、このテーブルのhogeに対してdataTableを使うと、合計行まで一緒にソートされてしまいます。

合計の行だけはソートから除外する方法はないのでしょうか。
アプリケーションの設計上、jsで合計を計算して行を追加するような事はしたくないと考えております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

このライブラリについて知っているわけではないのですが、
theadタグでヘッダの固定ができるのであれば、tfootタグでフッタの固定もできるのではないでしょうか。

ためしにやってみたら何となくそれっぽい感じにはなったので、
あとはCSSとかで調整できるかと。

lang

1<table class="table hoge"> 2<thead> 3 <tr> 4 <th>利用月</th> 5 <th>金額</th> 6 </tr> 7</thead> 8<tbody> 9 <tr> 10 <td>1月</td> 11 <td>100円</td> 12 </tr> 13 <tr> 14 <td>2月</td> 15 <td>500円</td> 16 </tr> 17</tbody> 18<tfoot> 19 <tr> 20 <td>合計</td> 21 <td>600円</td> 22 </tr> 23</tfoot> 24</table>

投稿2015/03/03 14:02

nyago_d

総合スコア178

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

僕もDataTablesというプラグインは詳しくないですが
検索して公式サイトを見た限り

drawイベント

というのがありましたので、これを利用して

lang

1$(function(){ 2 3 var $table = $('.table').dataTable(); //dataTablesプラグイン 4 var trText = null; //各行のテキスト 5 6 $table.on("draw", function(){ 7 8 $('.table tr').each(function(){ 9 10 //各行のテキストを抜き取る 11 trText = $(this).find("td").text(); 12 13 /* 14 * テキストに合計があったら、その行を抜き取って 15 * そのテーブルの末尾に持っていく 16 */ 17 if(trText.indexOf("合計") >= 0) $('.table').append($(this).remove()); 18 19 }); 20 21 }); 22 23});

あまりスマートなソースとは言い切れませんが
これで「合計」と書かれた行は常に一番下に表示されます。
こんな感じで良いのでしょうか?

このソースの欠点としては、DBに「合計」という文字列がデータあったら
その行もついでに末尾へ行ってしまうので、やはり工夫は必要かもしれませんね ^^;

ヒントになれば、幸いです。

投稿2015/03/03 14:21

編集2015/03/03 14:26
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問