WEBサイト制作の勉強

WEBサイト制作の勉強の為の解説ブログです。

フェリカテクニカルアカデミー

Traversingメソッドを使ったタブパネル

f:id:yachin29:20161001040013j:plain

Traversingメソッドを利用

Traversingのメリット

トラバースを利用することで、イベントが発生した要素に関連した要素を操作する事ができます。ボタンが複数ある場合などは「this」を使う事になりますが、このトラバースを使えば操作したい要素を「this」から見てどういう関係性にある「要素」、という形で指定する事ができます。jQueryを使う上で非常に大事な考え方なので、しっかりと理解しましょう。


childrenメソッド
jQueryオブジェクトで指定した要素の「子」要素でセレクタにマッチする要素を選択します。子要素とは階層構造(入れ子構造)において直下にある要素のことです。
childrenメソッドを利用すれば「セレクタ:>(子要素)」と同じようなことが可能です。

parentメソッド
指定した要素の「親」要素を選択します。親要素とは階層構造(入れ子構造)において直上にある要素のことです。
名前が似ているparentsメソッドはparentメソッドと異なり「先祖」要素も選択します。

siblingsメソッド
指定した要素の兄弟要素(同じ階層の要素)を選択します。引数を設定しない場合はすべての兄弟要素を選択します。



f:id:yachin29:20170224130454p:plain

www.jquerystudy.info


<!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>