如何使用jQuery折叠嵌套列表?

Bra*_*man 5 jquery

我有一个嵌套列表:

<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>
Run Code Online (Sandbox Code Playgroud)

...并且想要在单击li时折叠嵌套的ul.在我使用之前

$('UL LI').click(function(){
  $(this).next().slideToggle();
});
Run Code Online (Sandbox Code Playgroud)

...但是当li没有嵌套ul后,这显然会导致问题.有没有更好的方法来做到这一点,或者有没有办法让我确定$(this).next()返回的对象是否是UL?

Jan*_*oom 8

if($(this).next().is("ul")) {

}
Run Code Online (Sandbox Code Playgroud)

应该做的伎俩.请参阅:http://api.jquery.com/is/


dcl*_*901 6

$('LI').toggle(function() {
    $(this).children('ul').slideUp();
},
function() {
    $(this).children('ul').slideDown();
});
Run Code Online (Sandbox Code Playgroud)

这假设您指的是被点击的LI下列出的UL.如果您希望特定的UL在单击任何 LI 时崩溃,您可能需要编写一些带有更多检查的内容.