2012-11-10 113 views
-1

使用這個jquery代碼我試圖將顯示從無到塊更改爲 下的銷售,這是在皮帶下(它有一個皮帶-1 href)。下面的代碼 應該訪問第二個元素,但不是。我究竟做錯了什麼?如何使用jquery獲得第二個元素

$currentCategory = "Belts"; 
$(".sideCatMenu a:contains('" + currentCategory + "') ul").next(ul).eq(2).css('display', 'block'); 

我尋找這個名單

<li class="active"><a href="/sale/" class="parentSide">Sale</a><ul style="display: block;" class="subcat"> 
<li><a href="/accessories-3/">Accessories</a><ul style="display: none;"> 
<li><a href="/bags-1/">Bags</a></li> 
<li><a href="/wristbands/">Wristbands</a></li> 
<li><a href="/dog-collars/">Dog Collars</a></li> 
<li><a href="/wallets/">Wallets</a></li> 

</ul> 
</li> 
<li><a href="/ten-dollar-buckles/">Ten Dollar Buckles</a></li> 
<li><a href="/belts-1/">Belts</a><ul style="display: none;"> 
<li><a href="/28-belts/">28" Belts</a></li> 
<li><a href="/30-belts/">30" Belts</a></li> 
<li><a href="/32-belts/">32" Belts</a></li> 
<li><a href="/34-belts/">34" Belts</a></li> 
<li><a href="/36-belts/">36" Belts</a></li> 
<li><a href="/38-belts/">38" Belts</a></li> 
<li><a href="/40-belts/">40" Belts</a></li> 
<li><a href="/42-belts/">42" Belts</a></li> 
<li><a href="/44-belts/">44" Belts</a></li> 
<li><a href="/46-belts/">46" Belts</a></li> 
<li><a href="/48-and-larger-belts/">48" and Larger Belts</a></li> 

</ul> 
</li> 

</ul> 
</li> 
+1

1.你想選擇哪個元素? 2.你有''沒有相應的'

    '。修正你的標記。 –

+0

@undefined感謝您的幫助,最終獲得第一個UL「腰帶」,但不是第二個UL實際上是腰帶的孩子。我基本上需要得到第二個UL。 – Jesse

+0

如果你想undefined被通知你的答覆,你應該評論undefined的答案,而不是你的問題。 –

回答

0

1 - 你的錨沒有ul孩子這麼:

$(".sideCatMenu a:contains('" + currentCategory + "') ul") 

不選擇任何元素,應該是:

$(".sideCatMenu a:contains('" + currentCategory + "')") 

2 - 您應該包裝ul w第i個引號:

next('ul') 

3 - next只選擇一個元素,因此使用eq在你的代碼是沒有意義的。

4 - 在您的代碼currentCategory中是undefined,因爲您有一個變量名爲$currentCategory而不是currentCategory

好吧,讓我們試試這個:

$(".sideCatMenu a:contains('"+$currentCategory+"')").next('ul').show() 
+0

感謝您的幫助,最終得到第一個UL「腰帶」,但不是第二個UL,它實際上是腰帶的一個孩子。我基本上需要得到第二個UL。 – Jesse

+0

@Jesse歡迎您,標記中的第二個「ul」在哪裏?請注意,當父元素被隱藏時,子元素也會被隱藏。 – undefined

+0

這是一個鏈接到完整的div http://tinypaste.net/wcLYJHCb。第129行是應該從none更改爲block的div。現在你的代碼似乎訪問了第119行的ul。 – Jesse

0

試試這個:

$(".sideCatMenu a:contains('" + currentCategory + "') ul") 
       .nextAll("ul:eq(1)").css('display', 'block'); 

eq開始索引爲0,所以第二個元素應該是 「1」。

0

你可以用這樣的UL陣列中的任何元素直接交互:

$("ul.subcat li").index(2); 
相關問題