2009-04-01 14 views
0

imageタグとdivタグの両方が段落の子である場合、$("img").next().hide();のように見えます。next()のjQuery階層の問題

<p> 
<img src="image.jpg" /> 
<div>text</div> // this div is set to 'display: none' by default in css 
</p> 

しかし、私は<span>

<p> 
<img src="image.jpg" /> 
<span>text</span> 
</p> 

<div>を置き換える場合は、私は

<img src="image.jpg" /> 
<div>text</div> 

jQueryのセレクタが正しく動作しない<p>タグを省略した場合。これがなぜそのようなのでしょうか?それはインラインおよびブロック表示に関係していますか?上のコード例で説明したように、どうすればいいのですか?あなたの助けのための

$(document).ready(function(){ 
    $("img").hover(
     function() 
     { 
      $(this).next().show(); 
     }, 
     function() 
     { 
      $(this).next().hide(); 
     } 
    ); 
}); 

感謝を:

これは、私が使用していますjQueryのコードです!

答えて

0

p elementのように設定します。これは、あなたの最初の例がうまくいかない理由です。

1

ブロック要素(DIV)をインライン要素(P)内で使用しないでください。クラスと 代わりにPの使用DIVは唯一の子要素としてinline-level elementsを許可しないP.