JQuery find – Dans quel ordre renvoie-t-il des éléments?

J'ai utilisé la méthode de find jQuery et cela a été très utile.

Cependant, je suis parvenu à un exemple où la find semblait être dupliquer les choses et ne pas renvoyer des éléments dans l'ordre dans lequel ils apparaissaient dans le document. (Je ne suis pas sûr si la conclusion est censée faire cela – je le doute).

Cependant, il ne devrait pas avoir de doublons dans les éléments qu'il trouve et montrer la mauvaise commande, sûrement?

Un exemple complet peut être trouvé ici: jsFiddle – Notez comment span [9] et span [10] sont dans le mauvais ordre et sont dupliqués.

pourquoi est-ce le cas?

Mettre à jour

Mise à jour pour que la sortie soit écrite dans un document, utilisez le nouveau lien ci-dessus.

.find() renvoie des éléments dans l'ordre des documents. Plus d'informations ici: http://docs.jquery.com/Release%3ajQuery_1.3.2

Je pense que l'anomalie a quelque chose à voir avec les sélecteurs de caractères génériques. Est-ce nécessaire? Le retrait semble résoudre le problème.

Vous ajoutez * inutilisé dans votre code, remplacez cette recherche par votre code:

 $('#div1').find("*[class=w_line_" + i + "]").each(function () { 

Et faites-en, passez du bon temps;

Je ne peux pas trouver quelque chose d'étrange avec la commande.

 $(document).ready(function() { for (var i = 1; i <= 10; i++) { console.log(i); $('#div1').find("*[class*=w_line_" + i + "]").each(function() { console.log(i, $(this)); }); } }); 

Ce sélecteur semble retourner les éléments dans le même ordre que le vôtre et je ne peux pas voir de doublons.

 $('#div1 *[class*=w_line_' + i + ']')