Quiero contar cuántas casillas de verificación en mi página están seleccionadas usando jQuery. He escrito el siguiente código:
var numberOfCheckboxesSelected = 0; $(':checkbox').each(function(checkbox) { if (checkbox.attr('checked')) numberOfCheckboxesSelected++; });Sin embargo, mi código falla con el mensaje "El objeto no admite esta propiedad o método" en la tercera línea.
¿Cómo cuento cuántas casillas de verificación están seleccionadas en mi página?
jQuery admite el pseudoselector :checked .
var n = $("input:checked").length;Esto funcionará tanto para los botones de opción como para las casillas de verificación. Si solo desea casillas de verificación, pero también tiene botones de opción en la página:
var n = $("input:checkbox:checked").length;Pruebe esto (para evitar contar los botones de opción seleccionados):
var numberOfCheckboxesSelected = $('input[type=checkbox]:checked').length;El primer argumento pasado a la devolución de llamada en each es el índice, no el elemento. Deberías usar this o un segundo argumento:
$(':checkbox').each(function(idx, checkbox) { if (checkbox.attr('checked')) numberOfCheckboxesSelected++; }); Además, la forma más fácil de hacer esto es seleccionar solo los elementos marcados con el selector :checked y luego verificar la propiedad de length de la selección:
var numberOfCheckboxesSelected = $('input:checkbox:checked').length;