jQuery .eq (x) renvoie un élément différent dans IE que dans FF / Chrome

J’utilise la méthode .eq () pour sélectionner un élément enfant spécifique d’un élément connu. Il semble que les index des éléments diffèrent dans IE et dans Chrome / FF, car .eq (2) renvoie des valeurs différentes selon le navigateur. (L’élément que je cherche apparaît sous la forme .eq (2) dans FF / Chrome, mais .eq (3) dans IE)

Par exemple,

alert($(this).parent().children().eq(2).text()); 

affiche des résultats différents selon les navigateurs.

Voici le balisage en question:

 
Fake Initiative A1 Initiative B Not Real2

(J’ai supprimé les atsortingbuts, les CSS en ligne, etc. – la même chose se produit sans ceux en place).

Existe-t-il une meilleure façon de le faire?

Je devrais penser que cela a à voir avec des nœuds de texte vides, Firefox n’enregistrera pas l’espace blanc entre, par exemple, les balises et , comme le ferait IE, donc pour FF le deuxième nœud sera le balise ( ) où il s’agira du nœud de texte ( nœud de texte vide – ).

MODIFIER:

Après quelques tests (la réponse précédente était juste un problème commun que je rencontrais alors je suppose que cela aurait pu être pareil pour vous), le problème est que IE récupère votre balise de fermeture en tant qu’élément du domaine.

Si vous changez votre code en balises fermantes courtes, à savoir:

 
Fake Initiative A 1 L'initiative B n'est pas réelle 2

Ensuite, cela devrait fonctionner comme prévu.

Juste pour référencer tout mon script de test (seulement pour alerter le texte):

 
 
 
      Titre ici! </ title>
     <script type = "text / Javascript" src = "http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"> </ script>
     </script><script type = "text / Javascript">
         $ (fonction () {
             $ ("input: case à cocher"). bind ('click', function () {
                 alert ($ (this) .parent (). children (). eq (2) .text ());
             });
         }); 
     </ script>
 </ head>
 <body>
 <div>
   <span>
     <type d'entrée = "case à cocher"></type>
     <span> Fake Initiative A </ span> <span> 1 </ span>
   </ span>
   <span>
     <type d'entrée = "case à cocher"></type>
     <span> L'initiative B n'est pas réelle </ span> <span> 2 </ span> </ span>
 </ div>

 </ body>
 </ html>
</span></span></span></span></span></span></div></body></script>