通过jQuery显示/隐藏<li>

Jam*_*mes 3 html javascript css jquery html-lists

我有html喜欢

<ul>
<li class="dropdown">text</li>
<li>text</li>
<li>text</li>
<li>text</li>
<li>text</li>
<li class="dropdown">text</li>
<li>text</li>
<li>text</li>
<li class="dropdown">text</li>
<li>text</li>
<li>text</li>
<li>text</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

CSS:

li {display:none;}
li.dropdown {display:block;}
Run Code Online (Sandbox Code Playgroud)

当我们点击时li.dropdown,所有<li>没有类的,从当前到下一个li.dropdown,应该变得可见.当我们再次点击它时相反的动作 - <li>没有课程隐藏dropdown.

我该怎么做呢?

lon*_*day 7

这样做的正确方法是子菜单,所以:

<ul>
    <li class="dropdown">text
        <ul>
            <li>text</li>
            <li>text</li>
            <li>text</li>
            <li>text</li>
        </ul>
    </li>
    etc...
</ul>
Run Code Online (Sandbox Code Playgroud)

然后你可以做

$('li.dropdown').click(function() {
    $(this).find('ul').slideToggle('slow');
});
Run Code Online (Sandbox Code Playgroud)

否则,您将不得不使用nextUntil:

$('li.dropdown').click(function() {
    $(this).nextUntil('li.dropdown').slideToggle('slow');
});
Run Code Online (Sandbox Code Playgroud)

这将具有li单独隐藏每个嵌套元素而不是作为块的缺点.如果可以的话,先做第一件事.