我希望你能解决我的问题。 这是我的示例代码
<input type="checkbox" data-attr="getAllChoices" />
<div id="parent">
<div id="child1">
<input type="checkbox" value="3"/>Choice A
</div>
<div id="child2">
<input type="checkbox" value="5"/>Choice B
</div>
<div id="child3">
<input type="checkbox" value="6"/>Choice C
</div>
</div>
情景:
如果用户选中该复选框,则还应检查所有选项。 date-attr应该用于比较。如果它有一个值,它将调用父项的子项(复选框)并检查它。
到目前为止我的js中有这个。但我不知道如何调用其他复选框。我所知道的唯一一件事就是通过访问子div来调用复选框。
$("input[data-attr='checkAll']").on('change',function(){
//no idea. . . . .
});
顺便说一句,我使用的是jquery 1.5
答案 0 :(得分:2)
我没有看到data-check
属性。因此,请尝试使用data-attr
属性:
$("input[data-attr='getAllChoices']").bind('change',function(){
$('#parent').find('input[type=checkbox]').attr('checked', this.checked);
});
如果您想避免对checked属性使用attr()
,可以手动迭代复选框:
$("input[data-attr='getAllChoices']").bind('change',function(){
var isChecked = this.checked;
$('#parent').find('input[type=checkbox]').each(function(i, val){
val.checked = isChecked;
});
});
答案 1 :(得分:1)
试试这个,在jQuery 1.5中使用change
方法:
$(document).ready(function () {
$('input[data-attr="checkAll"]').change(function () {
$('#parent').find('input[type=checkbox]').attr('checked', this.checked);
//OR
// $('#parent input[type=checkbox]').attr('checked', this.checked);
});
});
以下是 Demo
答案 2 :(得分:1)
试试这个:
$("input[data-attr='getAllChoices']").bind('change', function () {
$('#parent input[type="checkbox"]').attr('checked', this.checked)
});