• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:nextの使い方)

jQueryのnextメソッドの動きについて

このQ&Aのポイント
  • jQueryのnextメソッドは、指定した要素の直後にある要素を取得するメソッドです。
  • $active.next()とすることで、$active要素の直後にあるIMG要素を取得しています。
  • そのため、$active要素が複数存在している場合でも、nextメソッドを使用することで一つずつ順番に取得することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.3

こんにちは。 ==== 動作サンプル http://hppg.moe.hm/okwave/qa/q7348297/ それぞれのボタンを押すと、その要素から次に見える要素に枠線を表示していきます。 <div id="slideshow"> <img src="img/img1.jpg" alt="" class="active" /> <img src="img/img2.jpg" alt="" class="hoge" /> <img src="img/img3.jpg" alt="" /> </div> <何かタグ /> $('#slideshow').next()←<何かタグ /> $('#slideshow img.active').next()←img/img2.jpg >何を元に、どの要素のnextなのかがあいまいでよくわかりません。 何を・・・$('')で取得した要素のnextです。 nextの場合はツリーの1階層上というよりは上から見たときのほうがイメージしやすいと思います。 <div id="slideshow"> <img src="img/img1.jpg" alt="" class="active" /> <img src="img/img2.jpg" alt="" /> <img src="img/img3.jpg" alt="" /> <video src="hoge.mp4"> </div> <img src="img/img4.jpg" alt="" /> <img src="img/img5.jpg" alt="" /> >とあった場合に、#slideshow以外のimgタグや、中のvideoタグは取得されないのでしょうか。 $('#slideshow').next()の場合はimg4になります。 $('#slideshow img.active').next()の場合は#slideshowの中のimg.activeの次ですのでimg2です。 その次はimg3、その次はvideoです。

umioyo
質問者

お礼

なるほど、videoもということで理解できました。 しつこい質問にご丁寧に回答いただき、ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.4

next()というのは、$(selector)で取得した「ノードリストの次のindexのもの」ではなく、 単純にDOMツリーのnextSiblingを指しているだけではないのでしょうか?

umioyo
質問者

お礼

ご回答ありがとうございます。 nextSiblingが理解できればいいんですけど・・・(^^;

すると、全ての回答が全文表示されます。
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 隣と言うのは隣です。 imgタグでactiveクラスの隣りですので2番目のimgが選択されます。 #slideshow imgで取得するとslideshowの中のimgを全て取得してしまいます。 div#slideshowの子要素がimg(この場合は3つ) no.1に挙げた例ですとslideshow2が隣になります。 ツリー構造にして同じ階層にいる次の要素になります。 マンションのお隣さんみたいなものです。(ちょっと乱暴かも

umioyo
質問者

お礼

それでは <div id="slideshow"> <img src="img/img1.jpg" alt="" class="active" /> <img src="img/img2.jpg" alt="" /> <img src="img/img3.jpg" alt="" /> <video src="hoge.mp4"> </div> <img src="img/img4.jpg" alt="" /> <img src="img/img5.jpg" alt="" /> とあった場合に、#slideshow以外のimgタグや、中のvideoタグは取得されないのでしょうか。 ツリー構造で1階層上までで判断するということでしょうか。 何を元に、どの要素のnextなのかがあいまいでよくわかりません。 よろしくお願い致します。

umioyo
質問者

補足

あ、さらにすいません。 <div id="slideshow"> <img src="img/img1.jpg" alt="" class="active" /> <img src="img/img2.jpg" alt="" class="hoge" /> <img src="img/img3.jpg" alt="" /> </div> はどうなんでしょうか。

すると、全ての回答が全文表示されます。
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 next()は隣の要素を読み込みます。 なので最初は $('#slideshow IMG.active')で取得(この場合img1.jpg) の次はimg2.jpgになります。 <div id="slideshow"> </div> <div id="slideshow2"> </div> こうあったとすると $('#slideshow').next()はslideshow2が取得できます。

umioyo
質問者

お礼

ご回答ありがとうございます。 隣の要素、の定義はなんでしょうか。 と、いうことは $('#slideshow IMG') でも問題ないということでしょうか。

すると、全ての回答が全文表示されます。

関連するQ&A