KANTENNA.COM

Solarized

HOME > WEBプログラム覚書 > jQueryによる表示、非表示切り替え

jQueryによる表示、非表示切り替え

今さらながらjQueryをお勉強。日本語のリファレンスも充分すぎるくらい充実してますんで、勉強しやすいですねよく使いそうなDivの表示、非表示切り替えをjQueryでやると・・・

jQueryによる表示、非表示サンプル

Javascript
  1.  $(function(){
  2.   // id="jQuerySample" 内のdivを非表示
  3.   $("#jQuerySample").css("display", "none");
  4.  
  5.   // id="jQuerySample"内のi番目のh5がクリックされた時、
  6.   // i番目のdivの表示、非表示切り替え
  7.   $("#jQuerySample").each(function(i){
  8.   $(this).click(function(){
  9.   $("#jQuerySample").eq(i).toggle();
  10.   });
  11.   });
  12.  });
HTML
  1.  <div id="jQuerySample">
  2.   <h5>jQueryサンプル1</h5>
  3.   <div>
  4.   <p>これはjQueryのサンプル1です。</p>
  5.   </div>
  6.  
  7.   <h5>jQueryサンプル2</h5>
  8.   <div>
  9.   <p>これはjQueryのサンプル2です。</p>
  10.   </div>
  11.  
  12.   <h5>jQueryサンプル3</h5>
  13.   <div>
  14.   <p>これはjQueryのサンプル3です。</p>
  15.   </div>
  16.  </div>

実行結果

jQueryサンプル1

これはjQueryのサンプル1です。

jQueryサンプル2

これはjQueryのサンプル2です。

jQueryサンプル3

これはjQueryのサンプル3です。

たったこれだけ。自分の場合jQuery使わないと下記のようにわけわからんことになってしまいました。もう吐きそうです。

jQueryを利用しない表示、非表示サンプル

Javascript
  1.  onload = function() {
  2.   obj = document.getElementById("jQuerySample");
  3.   h5 = getEreaObj(obj,"h5");
  4.   div = getEreaObj(obj, "div");
  5.  
  6.   for (i=0; i<h5.length; i++) {
  7.   div[i].style.display = "none";
  8.   showhide(h5[i], i);
  9.   }
  10.  }
  11.  
  12.  function getEreaObj(obj, tag){
  13.   objs = obj.getElementsByTagName(tag);
  14.   return objs;
  15.  }
  16.  
  17.  function showhide(obj, num){
  18.   myFunc = function(){
  19.   if(div[num].style.display == "none"){
  20.   div[num].style.display = "block";
  21.   }else{
  22.   div[num].style.display = "none";
  23.   }
  24.   }
  25.   obj.onclick = myFunc;
  26.  }

表示、非表示の切り替えでもこんな面倒です。さらにdivの中にdivが入ってる入れ子の状態の場合、 通常もっと厄介になりますが、jQuery利用すれば選択部分を変更するだけです。

jQueryを利用した子要素のみの表示、非表示サンプル

Javascript
  1.  $(function(){
  2.   // id="jQuerySample2" を親要素に持つdivを非表示
  3.   $("#jQuerySample2 > div").css("display", "none");
  4.  
  5.   // id="jQuerySample2"を親要素に持つi番目のh5が
  6.   // クリックされた時、i番目のdivの表示、非表示切り替え
  7.   $("#jQuerySample2 > h5").each(function(i){
  8.   $(this).click(function(){
  9.   $("#jQuerySample2 > div").eq(i).toggle();
  10.   });
  11.   });
  12.  });
HTML
  1.  <div id="jQuerySample">
  2.   <h5>jQueryサンプル1</h5>
  3.   <div>
  4.   <p>これはjQueryのサンプル1です。</p>
  5.   <div>
  6.   <p>これはjQueryのサンプル1の中のdiv内です。</p>
  7.   </div>
  8.   </div>
  9.  
  10.   <h5>jQueryサンプル2</h5>
  11.   <div>
  12.   <p>これはjQueryのサンプル2です。</p>
  13.   </div>
  14.  
  15.   <h5>jQueryサンプル3</h5>
  16.   <div>
  17.   <p>これはjQueryのサンプル3です。</p>
  18.   <div>
  19.   <p>これはjQueryのサンプル3の中のdiv内です。</p>
  20.   </div>
  21.   </div>
  22.  </div>

実行結果

jQueryサンプル1

これはjQueryのサンプル1です。

これはjQueryのサンプル1の中のdiv内です。

jQueryサンプル2

これはjQueryのサンプル2です。

jQueryサンプル3

これはjQueryのサンプル3です。

これはjQueryのサンプル3の中のdiv内です。

実際書き比べてみると便利さがよくわかります・・・

トラックバック(7)

2009年1月 9日 13:39

jQueryでページ内リンクを自動作成WEBプログラム覚書

jQueryを利用したページ内リンクを自動作成するスクリプト続きを読む

2009年1月20日 17:21

出来ると思ったけど出来なかったJavascriptコードWEBプログラム覚書

「innerText」はFirefoxで利用できないようなので、try~catchで分岐させようと思ったけどダメだったのでjQueryのブラウザ判定を利用...続きを読む

2009年1月27日 22:15

jQueryオブジェクトWEBプログラム覚書

jQueryオブジェクトについていろいろ気になったので調べてみたらいろいろとわかっていい勉強になったよって話続きを読む

2009年1月29日 17:11

javascript 反転処理1WEBプログラム覚書

ひとつの要素がtrue(表示)の時、その他の要素をfalse(非表示)にさせる仕組み続きを読む

2010年1月19日 12:18

[jQuery]こんな機能があったんだ。jQuery stop()WEBプログラム覚書

jQuery stop()のいろいろな機能を試してみたよ続きを読む

2011年12月 9日 01:55

[jQuery] jQuery入門前の話。WEBプログラム覚書

jQuery APIリファレンスをみて、jQuery.each()とjQuery(selector).each()のような同じ名前のメソッドで何が違うんだ...続きを読む

2011年12月12日 11:25

[jQuery] もう+演算子とはおさらば。jQuery TemplatesWEBプログラム覚書

jQueryに1年以上前から公式なテンプレートエンジンがあった件続きを読む

コメント

コメントする
Name
Email Address
URL
TIME LINE
2012
02.03

[jQuery]closest()とparents()

今から16年前Netscapeブラウザのソースコードの公開方法の会議の中で、初めてオープンソースという言葉が使われた今日、 みなさんいかがお過ごしでしょうか。

今回の投稿はそれとは関係のないjQueryのparents()とclosest()が 似てたので何が違うのか試した時のメモです。

2012
02.01

[jQuery Mobile]初期化イベントメモ

jQuery Mobileは読み込まれてから

mobileinit -> pagebeforecreate -> pagecreate -> pageinit

の順番でイベントが発生する。

2012
02.01

[WordPress]管理画面のフッタのフィルタとアクション。

時間も時間なので、あまり使用頻度の高くない微妙なネタを。

会員制サイトなどで不特定多数の人にログインさせる場合、フッタのバージョン情報は隠しておきたかったり、 こじゃれたメッセージを表示したいときとか使うアクションとフィルタ。

2012
01.28

[WordPress] ブログの情報を取得する方法とノーキャッシュ疑惑

ブログのget_bloginfo()で取れないデータが必要な場合に使うもの。

2012
01.26

[jQuery Mobile]ダイアログ

jQuery Mobileにおけるダイアログの扱いはウインドウではなくページ。 なので通常のページと同様に扱える。ダイアログウインドウを出す。じゃなくダイアログページに遷移する。的な。

2012
01.25

[Ubuntu11.10]Ubuntuのインストール後の設定

インストール完了後の環境構築。PC起動時いちいちBIOSからブートドライブ選んで ブートするのかと思ってたら起動時にOS選択画面が出てくる。

すばらしいですね。

2012
01.24
2012
01.23

MinGW+Mintty+Git

MinGW+Mintty+Gitをやろうとして失敗に終わった。このエントリーには収穫できるものはありません。

2012
01.21

[PHP]共有サーバーユーザーのためのPEARインストール方法

共有サーバーでは自由にPEARのパッケージがインストールできないので、 プロジェクトローカルに設置することになりますが、以前httpベースのものを使ってみたんですけど、 やたら重くて使い物にならなかったので、僕は普通にFTPでアップするようにしてます。

ってことでプロジェクトローカルへのPEARのインストール方法。