/ / ¿Hay alguna forma de consultar una colección que se completó previamente desde una expresión jquery? - jquery

¿Hay alguna forma de consultar una colección que se completó previamente desde una expresión jquery? - jquery

En lugar de ejecutar la misma expresión jquery varias veces, estoy rellenando una variable durante $(document).ready:

var checkboxes = $("#<%=tbl.ClientID %> input[id*="chk"]");

Aquí, estoy almacenando la lista de casillas de verificación que terminan con "chk" dentro de la tabla con el id de "tbl"en las casillas de verificación variables.

Más tarde, quiero deshabilitar un botón si ninguna de las casillas está marcada.

Estoy tratando de hacer algo como:

btn.disabled = $(checkboxes:checked").length == 0;

pero nada esta pasando Ideas?

Respuestas

0 para la respuesta № 1

checkbox en su código es un objeto jQuery. Usted está tratando de usarlo como una cadena.

Puedes tomar esa lista de casillas que estánya está en el objeto jQuery y luego filtre hacia abajo para obtener un resultado que sea solo el que está actualmente seleccionado y luego verifique la longitud de este como este:

btn.disabled = checkboxes.filter(":checked").length === 0;

O bien, puede ejecutar un selector completamente nuevo desde cero donde combine ":checked" Con tu selector anterior.


1 para la respuesta № 2

Si ya tienes una colección de jQuery, puedes filtrarla hacia abajo. Puedes usar el $.fn.filter método para excluir / incluir condicionalmente elementos en la nueva colección, o usar algo como $.fn.find para pasar en una nueva selección para que coincida con todos los niños en contra.

Leer más en línea en http://api.jquery.com/category/traversing/.