• 締切済み

テーブルの途中から折りたためるjquery

テーブルの途中から折りたためるjqueryを探しています。 当方、java scriptはほぼ素人です。 かなり前に他サイトでみた動きを再現したいのですが、 探してみても見つからない為、質問させて頂きます。 イメージはテーブルで組まれた下記のような表があり [すべて表示]のリンクを押すと非表示になっていた部分が表示される感じです。 ■ 通常時 01 XXXX YYYYYY 02 XXXX YYYYYY 03 XXXX YYYYYY [すべて表示] クリック時 01 XXXX YYYYYY 02 XXXX YYYYYY 03 XXXX YYYYYY 04 XXXX YYYYYY 05 XXXX YYYYYY 06 XXXX YYYYYY [戻す] このような動作をするjqueryでフリーの者があれば教えて頂けないでしょうか。

  • HTML
  • 回答数1
  • ありがとう数0

みんなの回答

  • Proof4
  • ベストアンサー率78% (151/192)
回答No.1

jQueryを使わずとも、tableタグのclassを変えることで実現可能ではないでしょうか。 具体的には以下のテーブルに対して、(<th>の内容は簡略化します。) 【HTML】 <table id="sample" class="default"> <th> 01~~~ </th> <th> 02~~~ </th> <th class="openbtn"> 開くボタン </th> <th class="hidden"> 03~~~ </th> <th class="hidden"> 04~~~ </th> <th class="closebtn"> 閉じるボタン </th> </table> 以下のCSSでスタイルが設定されているとします。 【CSS】 table.default th.hidden{ display: none; } table.default th.closebtn{ display: none; } この状態の時、3,4行目と閉じるボタンが隠されています。Javascriptで、すべて表示するボタンを押した時に下記の動作をするようにします。 【JS】 var elem = document.getElementById('sample'); elem.className = "open"; これによって、idが"sample"のtableのclassがdefault→openに変わります。また、CSSに次の記述を追加します。 【CSS】 table.open th.hidden{ display: table-row-group; } table.open th.closebtn{ display: table-row-group; } table.open th.openbtn{ display: none; } これで、隠されている部分と閉じるボタンが表示され、開くボタンが隠されます。 戻すときは、同様にしてtableのclassをopen→defaultにします。 確証はありませんが、こんな感じでいかかでしょうか。

関連するQ&A

  • jquery.csv2table.jsのテーブル

    CSVの会員名簿を読み込み、表にしてWEBに表示する為にjquery.csv2table.jsを使った こちらのサイトを参考にさせて頂きました。 http://jsgt.org/lib/jquery/plugin/csv2table/v002/test.htm CSVを読み込み、表示は成功したのですが。 もともとのCSVデータが横長に項目が多い為 表示されるテーブルは横長の表となってしまいます。 出来れば一行をセルの結合で2段にまとめて表示したいと思っています。 <td colspan="2"><td rowspan="2">を使って [1]はココに表示[2]はココに表示するみたいにテンプレ化して表示できればと思っていますが セルの背景色は変更できてもセルの場所を任意に変更できません やはりそういった事は難しいのでしょうか どなたか詳しい方、教えて頂けますと幸いです。 よろしく願い致します。

  • テーブルについて・・・

    カーソルをのせた表のバックカラーっていうのでしょうか、背景色を変えるにはどうすればいいんでしょうか? ところでこれはジャバスクリプトなんでしょうか・・・ ジャバスクリプトは初めてなんです・・・。 それとジャバスクリプトって、他に特別なプログラムをいれる必要があるんでしょうか? ジャバスクリプトの設定みたいなものが。 あとこれもジャバスクリプトなのかわかんないんですが、 テーブルに枠線を二重にするにはどうすればいいんでしょうか・・・? また枠の太さを個別に変える方法も教えてほしいです。 それと枠と枠の間の間隔ってかえられるんでしょうか? 教えてください、お願いします。

  • IEでのjQuery の実装について

    教えてください。 現在、jQuery の jqplot を利用してグラフの表示を検討しております。 HTML(ブラウザ:IE,chrome)での表示は問題なく行われますが、 HTMLをASPファイル内に組み込んでページを表示させようとすると chromeでは問題なくグラフが表示されますが、IEではエラーが発生します。 IEでも動作するようにするためのアドバイスをお願いします。 以下、ロジックです。 <!-- jQuery グラフ表示部 ここから --> <script language="javascript" type="text/javascript" src="../jQuery/jquery-1.9.0.min.js"></script> <!--[if lt IE 9]> <script language="javascript" type="text/javascript" src="../jQuery/excanvas.min.js"></script> <![endif]--> <script language="javascript" type="text/javascript" src="../jQuery/jquery.jqplot.min.js"></script> <script language="javascript" type="text/javascript" src="../jQuery/jqplot.barRenderer.min.js"></script> <script language="javascript" type="text/javascript" src="../jQuery/jqplot.categoryAxisRenderer.min.js"></script> <link rel="stylesheet" type="text/css" href="../jQuery/jquery.jqplot.min.css" /> <script> jQuery( function() { jQuery . jqplot( 'jqPlot-sample', [ [ [ '4月', 65 ], [ '5月', 72 ], [ '6月', 74 ], [ '7月', 63 ], [ '8月', 85 ], [ '9月', 90 ] ] ], { animate: true, seriesDefaults: { renderer: jQuery . jqplot . BarRenderer, }, axes: { xaxis: { renderer: jQuery . jqplot . CategoryAxisRenderer, } } } ); } ); </script> <!-- jQueryグラフ表示部 ここまで --> html部分 <div id="jqPlot-sample" style="height: 300px; width: 300px;"></div>

  • css,javascriptの呼び出しについて

    某サイトで、 cssの呼び出しで <link rel="stylesheet" href="xxxx.css?v=yyyyyy" > javascriptの呼び出しで <script src="xxxx.js?v=yyyyyy"> という記述がされていました。 phpスクリプトではよく見かける?v=yyyyyyという記述ですが、cssとjavascriptでは見かけた事がないので色々と調べたのですが、答えが見つかりません。 上記に示した様な記述方法は一般的なものなのでしょうか? 取り留めのない質問ですがよろしくお願い致します。

    • ベストアンサー
    • CSS
  • jqueryにて

    こちらではお初にお世話になります。 よろしくおねがいします! さて、jqueryを用いてScrollFollowを実装中なのですが、 正常に動作させることが出来ません。 ソースは <script type="text/javascript" src="./jslib/ui.core.js"></script> <script type="text/javascript" src="./jslib/jquery-1.2.6.js"></script> <script type="text/javascript" src="./jslib/jquery.scrollfollow.js"></script> <script type="text/javascript" src="./jslib/jquery.easing.1.3.js"></script> <script type="text/javascript" src="./jslib/jquery.cookie.js"></script> <script type="text/javascript"> $( document ).ready( function (){ $('test').scrollFollow({ }); }); </script> をヘッド部分に、 <div id="test"> コンテンツ </div> をBODYに記述しています。 動作せずにFirefoxのエラーコンソールで確認したところ エラー: jQuery is not defined ソースファイル: (省略)update/jslib/ui.core.js 行: 238 エラー: $("test").scrollFollow is not a function ソースファイル: http://contest2009.thinkquest.jp/tqj2009/110392/update/ 行: 13 と表示されました。jsファイルの生存は確認できており、 その系統のミスではないと思うのですが。。。 どなたかアドバイスをお願いします!

  • jqueryとjavascriptの競合?

    どなたかお知恵をお貸しくださいませ。 jqueryとjavascriptを混在させたページを作っています。 ファイルは全て同一サーバー内です。 ◆希望ページ構成 <body> <div class="wrap">  <div class="header"></div>  <div class="main">**フロートで左に配置   <iframe></iframe>  </div>   //1.   //jqueryの「iframe-auto-height」プラグインを使って、   //読み込まれた内容に応じてiframeの高さを変えるようにしたい。  <div class="menu">**フロートで右に配置</div>   //2.   //jqueryの「portamento」プラグインを使って、   //画面が縦長になりスクロールしてもこの「メニュー」が   //画面に追従してフロートするように(常に画面上に現れている様に)したい。   //3.   //このメニュー内のリンクから「iframe」内の内容を切り替えたい。 </div> </body> ■ 「1.」「2.」のjqueryは、同時にちゃんと動作しました。   が、「3.」を加えると「1.」が動きません。   「2.」は常に正常に動作します。   「1.」と「3.」が競合しているようなのですが、   私はみなさんが提供してくださっているスクリプトを“切り貼り”して   使わせて頂いている程度の知識しかなく、この問題をどうすれば回避し、   希望のページを作れるのか分からず、どなたかお詳しい方にご教示頂ければ、と思った次第です。  ★「3.フロートするメニューボックスの中のリンクから、    表示する内容に応じて高さが可変するiframeの内容を切り替える」    にはどのようにすればよいでしょうか? ◆HTML記述 <head> <script type="text/javascript" src="jquery-1.6.4.min.js"></script> <script type="text/javascript" src="jquery.iframe-auto-height.plugin.1.5.0.min.js"></script> /// 1.「iframe-auto-height」用。これは<head>内だけでなく、</body>の前部分に置いても動作しました。 <script type="text/javascript"> <!-- function ifr(jpURL){ panel.location = jpURL; } // --> </script>  ///3.「リンクでiframe内を切り替える」用。 </head> <body> ~ ~ <iframe src=".html" name="panel" width="620" height="1500" class="auto-height" scrolling="no" frameborder="0"></iframe>  /// 『切り替え』用に「name」を付け、『autoheight』用に「class」を付けています。  /// フロートの確認用に便宜的に「height」を書いていますが、『autoheight』が動作する際  /// は「height」は無視されています。 <script type="text/javascript"> jQuery('iframe').iframeAutoHeight(); </script>  /// 『autoheight』用スクリプト ~ ~ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> <script src="http://portamento.js"></script> <script> $('#menu').portamento({gap: 100}); // set a 100px gap rather than the default 10px </script>  /// 『フロートボックス』用読み込み&スクリプト      </body> 内容は以上となります。 何卒よろしくお願いいたします。

  • JQueryでのAJAXで困ってます

    最近AJAXを勉強しようと思い、JQueryに手を出しました。 JQueryで画面遷移無しでdivで作ったメニューを選択して内容を指定したdivに表示させようと思っているのですが、 JQueryでのloadの動作がブラウザの違いで異なる動きをするので困ってます。 IEでは内容が表示されて、新しく表示した部分のJavaScriptが正しく動くのでいいのですが、 Firefox、Operaでは新しく表示した部分のJavaScriptが動作しません。 Chromeでは新しく表示した部分のCSSでさえ適用されません。 IE以外でも正しく動作させるにはどうしたらいいでしょうか? ご回答、よろしくお願いします。

    • ベストアンサー
    • AJAX
  • 「jquery.csv2table.js」から生成されたテーブルに「s

    「jquery.csv2table.js」から生成されたテーブルに「super tables」を適用したい。 csv2tablesを使用して、テーブルの作成・表示はできるのですが、一部の行と列を 固定したいと考えています。色々検索した結果、「super tables」が良いかと思い、 以下のサイトを参考にスクリプトを追加していますが、エラーが表示され、固定 された表示になりません。 以下にスクリプトの情報等を記載します。書き方がそもそも間違っている等、 ご教示下さい。よろしくお願いします。 <参考にしたサイト> http://c-brains.jp/blog/wsg/09/06/16-151445.php <IE8のエラーメッセージ> Web ページ エラーの詳細 ユーザー エージェント: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C) タイムスタンプ: Sun, 29 Aug 2010 14:44:55 UTC メッセージ: 'this.sDataTable.tBodies.0' は Null またはオブジェクトではありません。 superTables.js ライン: 92 文字: 3 コード: 0 <HTML・スクリプト> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <link rel="stylesheet" href="./css/superTables.css" type="text/css" /> <script type="text/javascript" src="./js/jquery-1.3.2.min.js"></script> <script type="text/javascript" src="./js/jquery.csv2table.js"></script> <script type="text/javascript" src="./js/superTables.js"></script> <script type="text/javascript"> $(function(){ $('#view1').csv2table('./test.csv'); }); </script> <style type="text/css"> .fakeContainer { margin: 0 0 20px; width: 600px; height: 200px; overflow: hidden; } </style> </head> <body> <div id="view1" class="fakeContainer"></div> <script type="text/javascript"> //<![CDATA[ (function () { new superTable("view1", { cssSkin : "sDefault", headerRows : 1, fixedCols : 3 }); })(); //]]> </script> </body> </html> <test.csvの内容> No,項目1,項目2,項目3,項目4,項目5,項目6,項目7,項目8,項目9,項目10 1,,,,,,,,,, 2,,,,,,,,,, 3,,,,,,,,,, 4,,,,,,,,,, 5,,,,,,,,,, 6,,,,,,,,,, 7,,,,,,,,,, 8,,,,,,,,,, 9,,,,,,,,,, 10,,,,,,,,,, 11,,,,,,,,,, 12,,,,,,,,,, 13,,,,,,,,,, 14,,,,,,,,,, 15,,,,,,,,,, 16,,,,,,,,,, 17,,,,,,,,,, 18,,,,,,,,,, 19,,,,,,,,,, 20,,,,,,,,,,

  • JavascriptとJqueryを混在し記述

    JavascriptとJqueryが混在したスクリプトファイル(.js)の書き方について質問です。 Jquery自体がjavascriptで書かれており結局はjavascriptであるということは理解していますが 気になるので質問させてください。 通常、javascriptの書き方として、スクリプトやその関数定義を1つのjsファイルに書くと思いますが、 Jqueryが混在しても考えは一緒で、ただ、ページが全て読み込まれた後(要素を特定できるようにするため)に実行したい場合の スクリプトを $(function(){ //Jquryや通常のjavascript }); の中にこのように書けばいいって話ですよね? つまり1つのjsファイル内に以下のようにスクリプトを混在させた書き方でもいいのですよね? ===== script.js ====== //(1)Javaスクリプト ←jsファイルが読み込まれたら実行するスクリプト //関数定義 function test(){ //Javaスクリプト } //(2)Jquery ←ページが全て読み込まれた後で実行するスクリプト $(function(){ //Jqueryスクリプト //Javaスクリプト }); 初歩的なことかもしれませんがすいません。

  • 複数のjqueryを入れると動かなくなる

    今サイトを作っているのですが、スライダーと違うjqueryの相性が悪い(?)か自分の記載漏れで、埋め込みをした新しいjqueryは動きますが、スライダーが動かなくなってしまいました。 サイトです:http://blackartcard.com/ ヘッダー内は下記です。 <!--Scroll to Top--> <script src="http://blackartcard.com/backtop/jquery-1.3.2.min.js" type="text/javascript"></script> <script src="http://blackartcard.com/backtop/scrolltopcontrol.js" type="text/javascript"></script> <!-- ======================================= スライダー ======================================= --> <link rel="stylesheet" href="http://blackartcard.com/slider/panning-slideshow.css"/> <script src="http://code.jquery.com/jquery-latest.js"></script> <script src="http://blackartcard.com/slider/jquery.easing.1.3.js"></script> <script src="http://blackartcard.com/slider/jquery.timer.js"></script> <script src="http://blackartcard.com/slider/image-rotator.js"></script> </script> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">google.load("jquery", "1.3");</script> <script type="text/javascript"> $(document).ready(function(){ //マスオーバー時にキャンプション表示 $('.boxgrid.captionfull').hover(function(){ $(".cover", this).stop().animate({top:'135px'},{queue:false,duration:160}); }, function() { $(".cover", this).stop().animate({top:'250px'},{queue:false,duration:160}); }); }); </script> </head> 両方とも単体では稼働します。 初心者で大変申し訳ございませんがわかる方宜しくお願い致します。