use*_*906 1 checkbox jquery list jquery-selectors
我想用jQuery选择一个元素.
<ul>
<li><label><input type="checkbox" class="checkbox">checkbox1</label></li>
<ul class="list">
<li>lorem</li>
<li>lorem</li>
<li>lorem</li>
</ul>
<li><label><input type="checkbox" class="checkbox">checkbox2</label></li>
<ul class="list">
<li>lorem</li>
<li>lorem</li>
<li><lorem/li>
</ul>
</ul>
Run Code Online (Sandbox Code Playgroud)
我想隐藏并显示直接在带有1 jQuery函数的复选框下面的列表.
$(".list").hide();
$(".checkbox").click(function() {
if ($(".checkbox").is(":checked"))
{
$("????").show('slow');
}
else
{
$("????").hide('slow');
}
});
Run Code Online (Sandbox Code Playgroud)
???? 需要是一个选择器(仅)选择复选框下的列表.
首先,您的HTML无效,因为您不能li在a 之间添加元素ul.将您的HTML更改为:
<ul>
<li>
<label><input type="checkbox" class="checkbox">checkbox1</label>
<ul class="list">
<li>lorem</li>
<li>lorem</li>
<li>lorem</li>
</ul>
</li>
<li>
<label><input type="checkbox" class="checkbox">checkbox2</label>
<ul class="list">
<li>lorem</li>
<li>lorem</li>
<li><lorem</li>
</ul>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用cloest parent li作为上下文来查找相关的ul:
$(".list").hide();
$(".checkbox").click(function() {
var $parentLi = $(this).closest("li");
if ($(this).is(":checked")) {
$("ul", $parentLi).show('slow');
}
else {
$("ul", $parentLi).hide('slow');
}
});
Run Code Online (Sandbox Code Playgroud)