• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

189
Views
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 answers
Answer question

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 Report

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 Report

0

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

 alert($('.class').length); // alerts a nonnegative number
about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error