我有一些li行的子组,包含在一些ul列表中。页面打开时,将显示所有行。我希望它能隐藏li,直到点击包含它们的ul。
我知道你可以使用css“display:none”将它们隐藏在打开的页面上,但是作为javascript的初学者我不知道如何在点击它时让列表扩展。
由于
答案 0 :(得分:0)
我使用gt
选择器切换以隐藏超出特定数字的元素。
lis = $("li:gt(0)").hide();
$("ul").click(function () {
lis.toggle();
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>Expand</li>
<li>A</li>
<li>B</li>
<li>C</li>
<li>D</li>
</ul>
&#13;
答案 1 :(得分:0)
你可以试试,
$('ul.subgroups').on('click',function(){ // will work only if you have at least a single li which is visible
if ($(this).children('li:hidden').length) {
$(this).children('li:hidden').show();
}
});
代码段,
$(function() {
$('ul.subgroups').on('click', function() {
if ($(this).children('li:hidden').length) {
$(this).children('li:hidden').show();
}
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>Item 1</li>
<li>Item 2
<ul class="subgroups">
<li> Sub Item 2-1</li>
<li style="display:none"> Sub Item 2-2</li>
</ul>
</li>
<li>Item 3
<ul class="subgroups">
<li> Sub Item 3-1</li>
<li style="display:none"> Sub Item 3-2</li>
</ul>
</li>
</ul>
&#13;
答案 2 :(得分:0)
您可以将jQuery toggle
用于此
$('li a').click(function(){
$(this).siblings('ul').toggle();
})
ul {
padding: 0px;
list-style: none;
}
li {
display: block
}
li ul {
display: none;
padding-left: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><a href="#" title="">first</a>
<ul>
<li><a href="#" title="">first</a></li>
<li><a href="#" title="">second</a></li>
<li><a href="#" title="">third</a></li>
<li><a href="#" title="">fourth</a></li>
<li><a href="#" title="">fifth</a></li>
</ul>
</li>
<li><a href="#" title="">second</a></li>
<li><a href="#" title="">third</a>
<ul>
<li><a href="#" title="">first</a></li>
<li><a href="#" title="">second</a></li>
<li><a href="#" title="">third</a></li>
<li><a href="#" title="">fourth</a></li>
<li><a href="#" title="">fifth</a></li>
</ul>
</li>
<li><a href="#" title="">fourth</a></li>
<li><a href="#" title="">fifth</a></li>
</ul>