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

时间:2010-04-28 15:30:09

标签: 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>

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

$('UL LI').click(function(){
  $(this).next().slideToggle();
});

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

4 个答案:

答案 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();
});