2009-07-17 10 views
1

そうですね、これらの繰り返しdivがあるとします。jQuery Divの親と子

<div class="upcoming"> 
<div class="roll" style="display:none">Hidden</div> 
</div> 
<div class="upcoming"> 
<div class="roll" style="display:none">Hidden</div> 
</div> 
<div class="upcoming"> 
<div class="roll" style="display:none">Hidden</div> 
</div> 

これは間違っていますが、どのように私はそれらのdiv要素の一つの上にマウスを移動するときの内側開催された「ロール」クラスを明らかにするのjQueryを使ってこれを操作します。

<script type="text/javascript"> 
$(document).ready(function() { 
    $(".upcoming").hover(function() { 
     $(this + ".roll").fadeIn("Fast"); 
    }, function() { 
     $(this + ".roll).fadeOut("Fast"); 
    }); 
}); 
</script> 

$('.roll', this) 
+0

jqueryは本当にわかりませんが、$(this。)は$( '。roll')。fadeIn(...) – Greg

答えて

5

jQuery(expression, context)形式を使用します。タグなしのクラスセレクタを最後の手段として使用してください。

  • ベスト:タグまたはtag.class
  • 最悪:

なぜ.classファイル

  • グッド#ID?つまり、 ".upcoming"のようなセレクタは、基本的にツリー全体またはサブツリー全体を走査する必要があります。 Theereは、他の2つを高速化するDOMメソッドです(それぞれgetElementByIdまたはgetElementsByName)。ページの読み込み時間に大きな違いがあります。この特定のケースで

  • +0

    優秀!これは、ページ内の子要素を持つすべてのdivをループするために使用し、各div内の複数の子要素の値を検索/印刷する必要がありました。 – PreethaA

    2
    $(function() { 
        $("div.upcoming").hover(function() { 
        $("div.roll", this).fadeIn("fast"); 
        }, function() { 
        $("div.roll", this).fadeOut("fast"); 
        }); 
    }); 
    

    ただ、一般的なヒント:可能な限りjQueryとCSSの両方では、あなたのセレクタで具体的に:)

    -1

     
    $(this).next() 
    

    はまた、あなたの子供.roll div要素への参照を与えるだろう。

    関連する問題