Tengo una matriz de elementos HTML. Estoy comprobando si existe un objeto anterior en la matriz como este:Obtenga cada enésimo elemento en el conjunto
var boxes = $('.box'); // creating the array
boxes.each(function(i){ // going through the array
var prevBox = i>0?$(boxes[i-1]):false; // check whether a previous box exists
if (prevBox) { } // do something
else { } // do something else
});
Esto funciona bien. Pero también necesitaría verificar la existencia de cada cuarto objeto (cuadro) en la matriz, o más precisamente si un objeto tiene tres objetos antes de la actual.
Esto no funciona:
var prevBox = i>0?$(boxes[i-4]):false;
Creo usando jQuery.grep()
y comprobando si (i % 4) == 0
podría ser la respuesta, pero con mi limitado conocimiento de Javascript, no sé cómo aplicarlo a lo que ten ahora.
¿Alguien puede ayudar? ¡Gracias!
Gracias Patrick, pero no acaba de hacer lo que estoy buscando. Necesito obtener un valor 'position(). Top' del objeto y agregarle otro valor. En otras 'cajas [3]' necesita un valor de 'cajas [0]', 'cajas [6]' de 'cajas [3]', 'cajas [8]' de 'cajas [5]' y así sucesivamente. Lo siento, tengo problemas para explicar esto de una manera simple y, por lo tanto, no era lo suficientemente específico. – hannu
En otras palabras, en cada iteración necesito retroceder tres pasos, obtener un valor 'position(). Top' del cuadro y usarlo para calcular un nuevo valor para este cuadro actual. – hannu
@hannu: ¿Estás diciendo que para el elemento * each *, quieres el que está 3 detrás? Su numeración en el comentario anterior no es consistente. Va de 3 a 6 a 8. No hay un patrón allí. – user113716