0

moreProductsBoxのクラスを使用して、クリックしたリンクの後に次に使用可能なdivにアクセスしようとしています。次に、slideToggleを開きます。

これは私が今持っているものです:

リンク:

<div class="productContent">
<p><a href="#" onclick="return false;"  class="viewMoreProducts">View Related Products </a></p>
</div>
<div class="productSelectBar">
<div class="selectBar">
</div>
</div>

<!-- View More Products Box -->
<div class="moreProductsBox" style="display:none;">
</div>

Jqueryは次のとおりです。

// Show Hidden Product Boxes on Expand  
$(".viewMoreProducts").click(function() {
    $(this).nextAll(".moreProductsBox:first").slideToggle()
};

*マークアップがより明確になるように更新されました

4

3 に答える 3

1

は文書内でどのように.moreProductsBox関連し.viewMoreProductsていますか? それは兄弟ですか、それともドキュメントの下にある他の要素の子ですか? 兄弟であるが、次の兄弟ではない場合は、のことを試してください。

$(this).nextAll(".moreProductsBox:first").slideToggle();

なぜなら、次の兄弟.nextしか得られないからです。

于 2010-12-29T22:55:02.040 に答える
0

クラスmoreProductsBoxを使用して次のdivにアクセスする唯一の方法は、次のことを行うことでした。

$(this).parent().parent().parent().find(".moreProductsBox:first").slideToggle();

与えられた他の提案はうまくいきませんでした。

于 2010-12-30T18:32:01.830 に答える
0

next は兄弟ノードで機能します。html に「next」div はありません。

http://api.jquery.com/next/

説明: 一致した要素のセット内の各要素の直後の兄弟を取得します。セレクターが指定されている場合、そのセレクターに一致する場合にのみ、次の兄弟を取得します。

アンカーと div マークアップの両方を含む html を投稿すると、おそらく次のようなものが必要になります

// this should work if the p tag has a sibling div moreProductsBox
$(this).parent().next('moreProductsBox').slideToggle;
于 2010-12-29T22:57:04.710 に答える