2010-05-13 6 views
2

Quelqu'un pourrait me dire la différence entre ces deux. Le premier travaille sur FF et non sur IE (6) et le second sur IE (6) et non sur FF (j'utilise le Jquery 1.4.2). Nous devions détecter le navigateur et écrire le script en conséquence.Existe-t-il une différence entre "span: first" et "span: first" dans les sélecteurs JQuery?

+0

Sur une note de côté, jQuery est écrit de telle sorte que la quasi-totalité incompatibilité du navigateur est caché dans la bibliothèques (parce que le ciblage des navigateurs est mauvais). Si vous devez contourner cela, il y a quelque chose qui ne va pas et vous voudrez peut-être refactoriser. –

+0

@Joseph: Tout à fait d'accord avec vous. Habituellement, je ne vais pas pour un hack mais dans ce cas je ne savais pas comment le réparer car cela fonctionne très bien en FF mais fonctionne plutôt bizarre dans IE (6 seul). Après cela, ça fonctionne bien. – Raja

Répondre

7

On a un sélecteur descendant au milieu de celui-ci.

span:first 

sélectionnerons « Tous les éléments de portée que: la première pseudo-classe applique à »

span :first 

sélectionnerons « Tous les éléments qui ont la: première pseudo-classe qui leur sont appliquées et qui descendent à partir d'un élément span "

Il n'y a pas réellement de: première pseudo-classe. Vous pourriez vouloir dire: premier-enfant,: première ligne ou: première lettre.

(Oh, :first est des choses spécifiques jQuery, qui explique pourquoi SelectOracle ne savait pas à ce sujet)

+0

est totalement logique. Donc, si je dois trouver le premier span à l'intérieur d'un div donné et l'enlever alors tout ce que j'ai à faire est $ ("# divTest span first-child"). Remove(). Ai-je raison? – Raja

+0

Non, puisque (a) Ce serait un élément '' dans un '' etc et (b) 'span: first-child' serait un span si c'était le premier enfant, pas le premier span. (Vous pourriez vouloir le premier enfant, mais ce n'est pas ce que vous aviez à l'origine) – Quentin

+0

yup l'a eu merci :-) – Raja