如何使用jquery获取第二个元素

时间:2012-11-10 04:31:54

标签: jquery

使用这个jquery代码我试图将显示从none改为block 销售下的第二个ul在Belts下面(它有一个带-1 href)。以下代码 应该访问第二个元素,但不是。我究竟做错了什么?

$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>

3 个答案:

答案 0 :(得分:0)

请改为尝试:

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

eq以索引0开头,因此对于第二个元素,它应该是“1”。

答案 1 :(得分:0)

您可以直接与UL数组的任何元素进行交互,如下所示:

$("ul.subcat li").index(2);

答案 2 :(得分:0)

1 - 您的主播没有ul孩子,所以:

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

不选择任何元素,它应该是:

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

2 - 你应该用引号括起ul

next('ul')

3 - next只选择一个元素,因此在代码中使用eq没有意义。

4 - 您的代码currentCategoryundefined,因为您有一个名为$currentCategory而非currentCategory的变量。

好吧,让我们试试这个:

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