I want to count how many checkboxes on my page are selected using jQuery. I've written the following code:
var numberOfCheckboxesSelected = 0;
$(':checkbox').each(function(checkbox) {
if (checkbox.attr('checked'))
numberOfCheckboxesSelected++;
});
However, my code errors out with the message "Object doesn't support this property or method" on the third line.
How do I count how many checkboxes are selected on my page?
Try this(to avoid counting any selected radio buttons):
var numberOfCheckboxesSelected = $('input[type=checkbox]:checked').length;
The first argument passed to the callback in each is the index, not the element. You should use this or a second argument:
$(':checkbox').each(function(idx, checkbox) {
if (checkbox.attr('checked'))
numberOfCheckboxesSelected++;
});
Moreover, the easier way to do this is to select only the checked elements with the :checked selector and then check the selection's length property:
var numberOfCheckboxesSelected = $('input:checkbox:checked').length;