我的页面上有一个无序列表,其中包含每个 LI 内的列表。
目前它们都设置为不显示,但单击“我”想切换显示设置。
我写了以下内容,但我似乎无法让它发挥作用,有人知道我哪里出了问题吗?
//Product range expander
$('.product-range ul li a').click(function() {
$(this).find('.product-range ul li ul').slideDown('slow');
//$('.product-range ul li a').next('ul').toggle();
return false;
});
最佳答案
- 使用
$(this)
选择被点击的元素(即 anchor 元素)。 - 使用
.parents("li")
查找 anchor 的第一个匹配父级。这样我们就可以找到与a
包含在同一li
中的ul
。 - 使用
.find("ul")
查找li
元素内的ul
元素。
$('.product-range ul li a').click(function() {
$(this).parents("li").find("ul").slideDown('slow')
return false;
});
<小时/>
或者您可以使用siblings
:
$('.product-range ul li a').click(function() {
$(this).siblings("ul").slideDown('slow')
return false;
});
但是,我更喜欢找到共同的父元素,然后找到元素,以防标记发生变化。
关于javascript - 使用 jQuery 定位子 UL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12510732/