一旦我点击全选按钮,如何计算所有复选框

时间:2017-09-30 19:54:43

标签: jquery

我有一个全选按钮可以帮我选中所有复选框,它工作正常,我得到了已检查项目的总数,然后如果我一个接一个地选中复选框,我也得到了计数,但问题是当我在选择了一些之后选择全部时,计数再次变为0。

this.countRecipients = function() {
  $('.recipients').click(function() {

    if ($(this).attr('data-count')) {
      $(this).removeAttr('data-count');
    } else {
      $(this).attr('data-count', 1);
    }

    $('.value').html(self.countSelectedRecipies());

  });

  $('#checkAll').click(function() {

    if ($('.recipients').attr('data-count')) {
      $('.recipients').removeAttr('data-count');
      self.countSelectedRecipies();
    } else {
      $('.recipients').attr('data-count', 1);
      self.countSelectedRecipies();
    }
  });
}

1 个答案:

答案 0 :(得分:0)

您可能想要遍历这些元素,如下所示:

  $('#checkAll').click(function() {
    $('.recipients').each(function() {
      if ($(this).attr('data-count')) {
        $(this).removeAttr('data-count');
      } else {
        $(this).attr('data-count', 1);
      }
    });

    self.countSelectedRecipies();
  });

另外,我需要检查是否使用$(this).is(':checked')选中了复选框,而不是依赖第一个事件处理程序中的数据属性...