jQuery选择表行中的所有复选框

时间:2014-06-02 19:56:00

标签: javascript jquery html checkbox

我有一个表格,每行都有多个复选框,我创建了一些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',但不会显示任何更改。

这里有什么问题?

由于

1 个答案:

答案 0 :(得分:4)

您需要更改checked 属性,而不是checked 属性。你也不需要迭代,所以我简化了你的功能:

$('table').on('change', '.selectAll', function (e) {
    $(this).closest('tr').find(".aCheckbox").prop('checked', this.checked);
});