jQuery使用类`active`从`li`中定位下一个`ul`元素

时间:2016-01-28 16:42:07

标签: javascript jquery html

无法判断我做错了什么,因为我没有错误。基本上我想要定位包含ul类的li元素中的下一个active元素。

我的HTML是:

<li id="abc"></li>
<li id="account" class="active">
  <a href="#"><img class="menu-logo-symbol" src=" /img/app/logo-symbol.png">Your Account</a>
  <ul class="nav-pills nav-stacked sub-nav nav-list" style="display: none;">
    <li id="account-details"></li>
    ......
  </ul>
</li>

我尝试了以下内容:

var checkElement = $('li.active').next('ul');
checkElement.slideDown('normal');

$('li.active').next('ul').show();

以及

$('li.active').next('ul').slideDown('normal');

由于

2 个答案:

答案 0 :(得分:1)

在jQuery中,next()prev()在DOM中找到兄弟姐妹或同一深度的元素。在这种情况下,由于ul.active的子元素,因此您实际上需要使用find()方法,如下所示:$('li.active').find('ul').first().show();

first()find()结合使用可确保它只返回单个ul元素,而不会返回任何可能嵌套得更深的其他元素。

答案 1 :(得分:0)

完成如下:

$('.active ul:first').slideDown('normal');

我仍然不明白为什么这不起作用

$('li.active').next('ul').show();