2

私はJQueryを初めて使用するので、問題について助けが必要です。特定のリンクをクリックしたときに拡大および縮小したいコンテンツを含むdivがあります。そのようなもの:

<div class="container">
<div class="cont-top">
<a class="morelink" href="#">More</a>
</div>
<div class="cont-btm">
<p>This is the content to be displayed</p>  
</div>
</div>

問題は、このコンテナdivがphpループによって動的に生成されることです。このdivのインスタンスを1つだけ開くようにjqueryを作成するにはどうすればよいですか?これが私が持っているものです、それは機能しますが、明らかにそれはクリックされたものだけでなくすべてのdivを開いています。

$('.cont-btm').hide();
$('.morelink').click(function(e) {
e.preventDefault();
$('.cont-btm').toggle('fast');
});

これは簡単な質問ですが、プログラミングは初めてです。ありがとうございます。

4

4 に答える 4

1

次の方法を使用できます。

$('.cont-btm').hide();
$('.morelink').click(function(e) {
    e.preventDefault();
    // get the parent of the link and then get the next .cont-btm after the parent.
    $(this).parent().next('.cont-btm').toggle('fast');
});​

サンプル フィドル: http://jsfiddle.net/johnkoer/EGzCE/6/

于 2012-08-31T16:36:40.533 に答える
1

次のように、div に相対トラバースを使用できます。

$('.moreinfo').click(function(e) {
    e.preventDefault();
    $(this).parent().next('.cont-btm').toggle('fast');
});
于 2012-08-31T16:37:53.913 に答える
0

次のようにコードを変更します。

    $('.cont-btm').hide();
    $('.morelink').click(function(e) 
    {
        e.preventDefault();
        $(this).parent().next().toggle('fast');
    });
于 2012-08-31T16:41:37.850 に答える
-1

この div にクラス名 (または ID) を追加できない場合、それがページ内にある番号要素を見つけることができますか? つまり、1 番目、2 番目、3 番目などの div? その場合、jQuery の疑似セレクターを使用して div を取得できます。たとえば、 :nth-child は良いものです。数字が見つからない場合は、一意の識別子がないため、div コンテンツの html 文字列を比較し、一致したイベントハンドラーを実行するなど、非常にラウンドアバウトな方法を使用しないとこれを行うことができません。 . 重要なのは、その要素を何らかの方法でユニークにすることです。

于 2012-08-31T16:42:25.733 に答える