2010-12-29 1 views
0

クリックしたリンクの後に次の利用可能なdivにアクセスしようとしていますが、moreProductsBoxのクラスでslideToggleを開いています。jqueryが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() 
}; 

は*に.moreProductsBoxを関連している方法

答えて

0

ような何かがしたい:

与えられた他の提案は機能しませんでした。

1

より明確にするマークアップを更新しました文書内の.viewMoreProducts?それは兄弟であるか、文書の下にある他の要素の子ですか?それは兄弟ではなく非常に次のものである場合、あなたは試してみてください:

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

.nextので、あなただけに非常に次の兄弟を取得します。マッチした要素の集合の各要素の直後の兄弟を取得します:兄弟ノード上

+0

pリンクビューMoreProductsは、moreProductsBoxという隠れたdivからいくつか離れています(私は推測しています)。それぞれに隠されたdivを持つセクションが多数あります。 – estern

+0

@estern - マークアップを表示する必要があります。それ以外の場合は、適切な要素を選択する方法を推測します。 – karim79

+0

私はマークアップを知っています。それが兄弟であるかどうかわかりません。アイテムの順序は次のようになります:

moreProductsBoxのクラスを持つdivにアクセスしようとしているdivの前にいくつかのdivがあります – estern

0

次の作品は、

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

説明あなたのhtmlに何の「次」のdivはありません。セレクタが提供されている場合は、そのセレクタに一致する場合にのみ次の兄弟を取得します。

があなたのアンカーとdivのマークアップの両方が含まれているHTMLを投稿し、あなたはおそらく、私はクラスmoreProductsBoxとその次のdivにアクセスするための唯一の方法だった

// this should work if the p tag has a sibling div moreProductsBox 
$(this).parent().next('moreProductsBox').slideToggle; 
関連する問題