jQuery: comment utiliser chaque début à un index autre que 0
J'ai une collection d'éléments que je veux faire une boucle sur l'aide de chacun, mais je suis en boucle sur eux à l'intérieur d'une boucle for extérieure. Quand j'ai trouvé ce que je veux dans la de chaque, je retourne false pour sortir. La prochaine fois que l'extérieur de la boucle s'exécute, je veux commencer dans la chacune un élément après un je suis retourné à la. Un code générique exemple:
var nextIndex = 0;
for (var j=1; j <= someCount; j++) {
//do outside loop stuff
$('#someElemID').find('.someClass').each(function(index) {
if (/*this is right one*/) {
//do something
//next index should get passed to each function next loop... somehow?
nextIndex = index + 1;
return false;
}
});
}
J'ai pensé sur le passage à une boucle for, mais je me suis confus quant à la façon d'accéder au retour de la .find('.someClass')
. Peut-être que c'est une question distincte de lui-même...
Est-ce une évidence?
source d'informationauteur Carvell Fenton
Vous devez vous connecter pour publier un commentaire.
Utilisation
slice()
http://api.jquery.com/slice/btw, si les éléments sont statiques, envisager la mise en cache:
Qui devrait améliorer considérablement les performances.
Une autre possibilité est de stocker l'index unincremented, vous pouvez utiliser le gt sélecteur pour sélectionner directement les éléments qui se produisent après l'index stocké, comme ceci:
Je ne sais pas combien de fois vous vous apprêtez à exécuter ce ou comment beaucoup de différents varitions vous avez besoin, mais je ne suis pas fan de laisser
nextValue
flottant autour dans l'espace. Vous pourriez faire quelque chose comme ça, qui vous donnent la possibilité de créer de multiples files d'attente des " si vous. Il semble que vous ne souhaitez trouver cet élément une fois, et une fois que vous le faites, vous ne voulez jamais à la recherche de nouveau. Cela devrait le faire, et il fonctionne par la mise en cache sur le sélecteur. Si vous modifiez les DOM entre les appels, utilisez l'une des autres réponses.Voici un exemple de violon: http://jsfiddle.net/robert/RCfeJ/