2012-01-01 16 views
4

を特定jQueryの要素をターゲットに可能性の重複:私はjQueryのに新しいよ
How to select an element by class inside “this” in Jquery同じクラス名で

...私は、これが「これを使って何かを持っていると思います"コマンドですが、わかりません。

<div class="moreinfolink">Click For More Information 
<div class="moreinfotext">Additional Info Here</div> 
</div> 

だからページ上のいくつかの.moreinfolinkと.moreinfotextクラスがあります。

私はmoreinfotext divの表示を切り替えるためにこのコードを使用:

$('.moreinfolink').click(function() { 
    $('.moreinfotext').toggle('slow', function() { 
    }); 

をしかし、これは明らかに、ページ上に存在するmoreinfotext div要素のすべてにトグルを行います。

つの質問: にはどうすれば親moreinfolink divの内側にある特定の子のdivのためにそれを行うことができますか? 私は行くよdirecitonよりもそれを行うには良い方法はありますか?

ありがとうございます!

答えて

7

(@FelixKlingが示唆するように)あなたは.findを使用することができます。

$('.moreinfolink').click(function() { 
    $(this).find('.moreinfotext').toggle('slow', function() { ... }); 
}); 

例:http://jsfiddle.net/hejFq/

+5

'$( 'moreinfotext'、this)'は$(this).find( '。moreinfotext') 'を呼び出すので、直接使用することができます。 –

+0

@FelixKling:そうだね、と私はfind'が直接優れている 'を呼び出すとします。 –

+0

それはそれを得ました!私はここでHTMLを使用して、それを行う最善の方法ですか、より良い方法がありますか? –

1

このバイオリンはそれを行う方法を示します:http://jsfiddle.net/ZAwTL/

またはthis fiddle、どのショーフェリックスクリングが示唆するように、直接find()メソッドを呼び出します。

サンプルHTML

<div class="moreinfolink">Click For More Information 
<div class="moreinfotext">Additional Info Here</div> 
</div> 
<br> 
<br> 
<div class="moreinfolink">Click For More Information 
<div class="moreinfotext">Additional Info Here</div> 
</div> 
<br> 
<br> 
<div class="moreinfolink">Click For More Information 
<div class="moreinfotext">Additional Info Here</div> 
</div> 

はJavaScript

$('.moreinfolink').click(function() { 
    $(this).find('.moreinfotext').toggle('slow', function() { }); 
}); 
1
$('.moreinfolink').click(function() { 
    $(this).children('.moreinfotext').slideToggle('slow'); 
}); 

私はあなたが持っていた空の関数を削除...どちらかそれをサポートするために提供に十分な情報がありませんでした、それは間違いであった。

関連する問題