HTML:
<ul class="menu">
<li><a href="http://google.com">Text</a>
<ul>
<li><a href="http://google.com">Text</a>
<li><a href="#">Text</a>
<li><a href="#">Text</a>
</ul>
</li>
<li><a href="http://google.com">Text</a></li>
<li><a href="http://google.com">Text</a></li>
<li><a href="http://google.com">Text</a></li>
<li><a href="#">Text</a>
<ul>
<li><a href="#">Text</a>
<li><a href="#">Text</a>
<li><a href="#">Text</a>
</ul>
</li>
<li><a href="#">Text</a></li>
</ul>
JS:
$(".menu li a").click(function() {
$(this).parent().find("ul").toggle();
return false;
});
如果只有当<li>
里面有<ul>
时,如何使这个js工作?
不添加额外的课程。
当当前<ul>
内没有子<li>
时,它不起作用。
如果您提供链接到您的工作示例,那就更好了。
答案 0 :(得分:2)
尝试限制父级带回第一个li
,现在它找到ul
的{{1}}作为顶级容器,然后在其中有几个li
所以逻辑按照书面工作。
ul
答案 1 :(得分:1)
如果当前徘徊的ul
的孩子li
执行某项操作:
$('li').hover(
function(){
if ($(this).has('ul')) {
// do stuff
}
});
答案 2 :(得分:0)
我想补充一点,您也可以将:has
选择器与parent > child
选择器(demo)一起使用:
$('.menu li:has(ul) > a').click(function() {
$(this).parent().find('ul').toggle();
return false;
});