我在每个li
标记上都有嵌套列表复选框,
我的问题是: 如果选中了父复选框,则还应检查其所有子复选框。
来自Fiddle的示例:如果我检查"子食物"然后还应检查子食品下的所有复选框,即X,Y,Z。 如何使用jquery
执行此操作 <div id="checboxlist">
<ul>
<li id="taskrow_id1"><input type ="checkbox"> Sub food
<ul>
<li id="taskrow_id4"><input type ="checkbox"> X</li>
<li id="taskrow_id5"><input type ="checkbox">Y</li>
<li id="taskrow_id6"><input type ="checkbox">Z</li>
</ul>
</li>
<li id="taskrow_id2"><input type ="checkbox">B</li>
<li id="taskrow_id3"><input type ="checkbox">c</li>
</ul>
</div>
我试过这样但是什么都不做
$("#taskrow_id1").closest('ul').prop('checked', true);
答案 0 :(得分:1)
我只是使用find()
和prop()
的组合来查找元素并调整其checked
属性:
$("#taskrow_id1").click(function(){
var checkboxes = $(this).find("input[type=checkbox]");
checkboxes.prop("checked", checkboxes.prop("checked"));
});
但是,如果您要多次重复使用,请为元素添加class
,只需使用ID
选择器替换jQuery中的class
选择器
答案 1 :(得分:0)
您可以通过为子项复选框提供类名(例如&#39; foo&#39;)来简化此操作。
$('#sub_food_check_box').click(function() {
$('.foo').prop('checked', true);
});
答案 2 :(得分:0)
更新小提琴就在这里
首先,您可以将一些类添加到父li标签,然后添加jquery代码:
<div id="checboxlist">
<ul>
<li class="someClass"><input type ="checkbox"> Sub food
<ul>
<li><input type ="checkbox"> X</li>
<li><input type ="checkbox">Y</li>
<li><input type ="checkbox">Z</li>
</ul>
</li>
<li><input type ="checkbox">B</li>
<li><input type ="checkbox">c</li>
</ul>
</div>
$(document).ready(function(e) {
$(".someClass").find("input").click(function(){
$(".someClass").children().find("input").click();
})
});