Avec Jquery, je dois sélectionner uniquement les premiers "n" éléments de la page, par exemple les 20 premiers liens au lieu de les sélectionner tous avec l'habituel
$("a")
Cela semble simple, mais le manuel jQuery n'a aucune preuve de quelque chose comme ça.
:lt(20)
approche semble beaucoup plus propre, l'utilisation de la tranche est beaucoup plus efficace si vous avez un ensemble de résultats important pour commencer. Malheureusement, lors de l'évaluation de ": lt" et d'autres sélecteurs de position, jQuery parcourt l'ensemble entier , même s'il ne s'agit que du premier élément. J'ai écrit plus à ce sujet sur mon blog ici: spadgos.com/?p=51Utilisez le pseudo sélecteur lt:
Cela correspond aux éléments avant le nième (le nième élément exclu). La numérotation commence à 0.
la source
J'ai trouvé cette note à la fin des documents lt () :
Utilisez donc
$("selector").slice(from, to)
pour de meilleures performances.la source
Essayez le sélecteur: lt: http://docs.jquery.com/Selectors/lt#index
la source
.slice () n'est pas toujours mieux. Dans mon cas, avec jQuery 1.7 dans Chrome 36, .slice (0, 20) a échoué avec l'erreur:
RangeError: taille maximale de la pile d'appels dépassée
J'ai trouvé que: lt (20) fonctionnait sans erreur dans ce cas. J'avais probablement des dizaines de milliers d'éléments correspondants.
la source
Documentation JQuery
la source