我有一个嵌套列表:
<ul>
<li><a href='#'>stuff</a></li>
<li><a href='#'>stuff2</a></li>
<ul>
<li><a href='#'>stuff3</a></li>
</ul>
<li><a href='#'>stuff4</a></li>
</ul>
...并且想要在单击li时折叠嵌套的ul。在我使用之前
$('UL LI').click(function(){
$(this).next().slideToggle();
});
...但是当li没有嵌套ul后,这显然会导致问题。有没有更好的方法来做到这一点,还是有办法让我确定$(this).next()返回的对象是否是UL?
答案 0 :(得分:8)
if($(this).next().is("ul")) {
}
应该做的伎俩。请参阅:http://api.jquery.com/is/
答案 1 :(得分:6)
$('LI').toggle(function() {
$(this).children('ul').slideUp();
},
function() {
$(this).children('ul').slideDown();
});
这假设您指的是点击的LI下列出的UL。如果您希望在单击任何 LI时特定的UL崩溃,您可能需要再写一些支票。
答案 2 :(得分:1)
可以只是$(this).next(“ul”)。slideUp()
答案 3 :(得分:0)
有点晚了,但是......
$('UL LI').click(function() {
$('> ul', this).toggle();
});