Traversingメソッドを利用
Traversingのメリット
トラバースを利用することで、イベントが発生した要素に関連した要素を操作する事ができます。ボタンが複数ある場合などは「this」を使う事になりますが、このトラバースを使えば操作したい要素を「this」から見てどういう関係性にある「要素」、という形で指定する事ができます。jQueryを使う上で非常に大事な考え方なので、しっかりと理解しましょう。
childrenメソッド
jQueryオブジェクトで指定した要素の「子」要素でセレクタにマッチする要素を選択します。子要素とは階層構造(入れ子構造)において直下にある要素のことです。
childrenメソッドを利用すれば「セレクタ:>(子要素)」と同じようなことが可能です。
parentメソッド
指定した要素の「親」要素を選択します。親要素とは階層構造(入れ子構造)において直上にある要素のことです。
名前が似ているparentsメソッドはparentメソッドと異なり「先祖」要素も選択します。
siblingsメソッド
指定した要素の兄弟要素(同じ階層の要素)を選択します。引数を設定しない場合はすべての兄弟要素を選択します。
<!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> <title>トラバースを使ったタブパネル</title> <link rel="stylesheet" href="css/style.css"> <script src="js/jquery-2.2.4.min.js"></script> <script> $(function(){ $('#tab>li>a').on('click',function(){ $(this).parent('li').addClass('current').siblings('li').removeClass('current'); var tabTarget = $(this).attr('href'); //クリックしたa hrefの値を変数化する $(tabTarget).addClass('current').siblings('div').removeClass('current'); return false; }); }); </script> </head> <body> <div class="container"> <h1>タブパネル</h1> <ul id="tab"> <li class="current"><a href="#img1">ニューヨーク</a></li> <li><a href="#img2">京都</a></li> <li><a href="#img3">パリ</a></li> </ul> <div class="image current" id="img1"> <img src="img/01.png" alt=""> </div> <div class="image" id="img2"> <img src="img/02.png" alt=""> </div> <div class="image" id="img3"> <img src="img/03.png" alt=""> </div> </div> </body> </html>