我有一个表格,每行都有多个复选框,我创建了一些jQuery,通过点击另一个复选框来检查某一行上的所有chekbox。
$('table').on('change', '.selectAll', function(e) {
if(this.checked) {
$(e.target).closest('tr').find(".aCheckbox").each(function() {
$(this).attr('checked', true);
});
}
else {
$(e.target).closest('tr').find(".aCheckbox").each(function() {
$(this).attr('checked', false);
});
}
});
但它只能工作两次(即:你可以检查所有的方框,取消选中它们,但之后再尝试检查它们时就不会发生任何事情)
当我点击我的.selectAll复选框时,它会将输入的html成功更改为checked='checked'
,但不会显示任何更改。
这里有什么问题?
由于
答案 0 :(得分:4)
您需要更改checked
属性,而不是checked
属性。你也不需要迭代,所以我简化了你的功能:
$('table').on('change', '.selectAll', function (e) {
$(this).closest('tr').find(".aCheckbox").prop('checked', this.checked);
});