• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

187
Vistas
jquery $('.class').each() ¿cuántos elementos?

Al recorrer un grupo de elementos usando los selectores de jquery, ¿hay alguna manera de averiguar cuántos elementos hay en la colección?

about 3 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Si está utilizando sintaxis encadenada:

 $(".class").each(function() { // ... });

... No creo que haya ninguna forma (razonable) para que el código dentro de each función sepa cuántos elementos hay. (Las formas irrazonables implicarían repetir el selector y usar index ).

Pero es bastante fácil hacer que la colección esté disponible para la función que está llamando en each . Aquí hay una forma de hacerlo:

 var collection = $(".class"); collection.each(function() { // You can access `collection.length` here. });

Como una opción algo complicada, puede convertir su objeto jQuery en una matriz y luego usar forEach de la matriz. Los argumentos que se pasan a la devolución de llamada de forEach son la entrada que se está visitando (lo que jQuery le da como this y como el segundo argumento), el índice de esa entrada y la matriz en la que la llamó:

 $(".class").get().forEach(function(entry, index, array) { // Here, array.length is the total number of items });

Eso supone un motor de JavaScript al menos vagamente moderno y/o una corrección para Array#forEach .

O para el caso, date una nueva herramienta:

 // Loop through the jQuery set calling the callback: // loop(callback, thisArg); // Callback gets called with `this` set to `thisArg` unless `thisArg` // is falsey, in which case `this` will be the element being visited. // Arguments to callback are `element`, `index`, and `set`, where // `element` is the element being visited, `index` is its index in the // set, and `set` is the jQuery set `loop` was called on. // Callback's return value is ignored unless it's `=== false`, in which case // it stops the loop. $.fn.loop = function(callback, thisArg) { var me = this; return this.each(function(index, element) { return callback.call(thisArg || element, element, index, me); }); };

Uso:

 $(".class").loop(function(element, index, set) { // Here, set.length is the length of the set });
about 3 years ago · Santiago Trujillo Denunciar

0

Si está utilizando una versión de jQuery que es anterior a la versión 1.8, puede usar $('.class').size() que toma cero parámetros. Consulte la documentación para obtener más información sobre el método .size().

Sin embargo, si está usando (o planea actualizar) a 1.8 o superior, puede usar la propiedad $('.class').length. Consulte la documentación para obtener más información sobre la propiedad .length.

about 3 years ago · Santiago Trujillo Denunciar

0

Usa la propiedad .length . No es una función.

 alert($('.class').length); // alerts a nonnegative number
about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda