Как посчитать, сколько флажков выбрано на странице с помощью jQuery? - PullRequest
14 голосов
/ 25 января 2011

Я хочу посчитать, сколько флажков на моей странице выбрано с помощью jQuery. Я написал следующий код:

      var numberOfCheckboxesSelected = 0;
      $(':checkbox').each(function(checkbox) {
          if (checkbox.attr('checked'))
              numberOfCheckboxesSelected++;
      });

Однако мой код выдает ошибку с сообщением «Объект не поддерживает это свойство или метод» в третьей строке.

Как посчитать, сколько флажков выбрано на моей странице?

Ответы [ 4 ]

37 голосов
/ 25 января 2011

jQuery поддерживает псевдоселектор :checked.

var n = $("input:checked").length;

Это будет работать как для переключателей, так и для флажков. Если вы просто хотите установить флажки, но также есть переключатели на странице:

var n = $("input:checkbox:checked").length;
5 голосов
/ 25 января 2011

Попробуйте это (чтобы избежать подсчета любых выбранных переключателей):

var numberOfCheckboxesSelected = $('input[type=checkbox]:checked').length; 
2 голосов
/ 25 января 2011

Первый аргумент, переданный обратному вызову в each, - это индекс, а не элемент. Вы должны использовать this или второй аргумент:

$(':checkbox').each(function(idx, checkbox) {
      if (checkbox.attr('checked'))
          numberOfCheckboxesSelected++;
});

Более того, более простой способ сделать это - выбрать только отмеченные элементы с помощью селектора :checked, а затем проверить свойство length выбора:

var numberOfCheckboxesSelected = $('input:checkbox:checked').length;
1 голос
/ 25 января 2011
$("input:checked").length

это вернет количество отмеченных флажков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...