Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/03/2018, 09:50
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Duda con funcion Js

Lo que mpozo quiso decir es que dicho método considera a la selección actual o "en vivo" de elementos de acuerdo con la clase usada para la búsqueda. Esto quiere decir que, si modificas un elemento previamente seleccionado y su nuevo estado no cumple con los requisitos para seguir estando seleccionado de acuerdo con la búsqueda inicial, entonces ya no se le considera y la selección decrementa su cantidad de elementos en uno y así sucesivamente.

Lo que sucede en tu caso es lo siguiente:

1. El total de elementos seleccionados al inicio es de 5.
2. En la primera iteración del bucle, se cambia la clase del primer elemento, por lo cual, ese total de 5 ahora pasa a ser 4 (recuerda que es un método "live" o "en vivo").
3. A su vez, el segundo elemento de la lista ahora pasa a ser el primero.
4. El contador i incrementó su valor en uno, por lo que, en la siguiente iteración, va a seleccionarse al segundo elemento de la lista, solo que este era originalmente el tercero pero ahora es el segundo porque se retiró al primero de la lista, produciéndose el desarreglo que has notado.

La solución, como te lo han dicho, consiste en trabajar con el método .querySelectorAll(".clase").

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand