Как подсчитать, сколько флажков выбрано на странице с помощью jQuery
Я хочу подсчитать, сколько флажков на моей странице выбрано с помощью jQuery. Я написал следующий код:
var numberOfCheckboxesSelected = 0;
$(':checkbox').each(function(checkbox) {
if (checkbox.attr('checked'))
numberOfCheckboxesSelected++;
});
Однако мои ошибки кода с сообщением "Объект не поддерживает это свойство или метод" в третьей строке.
Как подсчитать, сколько флажков выбрано на моей странице?
Ответы
Ответ 1
jQuery поддерживает псевдо-селектор :checked
.
var n = $("input:checked").length;
Это будет работать и для радиокнопок, и для флажков. Если вам просто нужны флажки, но также есть переключатели на странице:
var n = $("input:checkbox:checked").length;
Ответ 2
Попробуйте это (чтобы не считать любые выбранные переключатели):
var numberOfCheckboxesSelected = $('input[type=checkbox]:checked').length;
Ответ 3
Первый аргумент, переданный обратному вызову в each
, является индексом, а не элементом. Вы должны использовать this
или второй аргумент:
$(':checkbox').each(function(idx, checkbox) {
if (checkbox.attr('checked'))
numberOfCheckboxesSelected++;
});
Более того, более простой способ сделать это - выбрать только проверенные элементы с помощью :checked
, а затем проверить выбор length
свойство:
var numberOfCheckboxesSelected = $('input:checkbox:checked').length;
Ответ 4
$("input:checked").length
это вернет количество отмеченных флажков.