使用这个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>
答案 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 - 您的代码currentCategory
为undefined
,因为您有一个名为$currentCategory
而非currentCategory
的变量。
好吧,让我们试试这个:
$(".sideCatMenu a:contains('"+$currentCategory+"')").next('ul').show()