Je suis nouveau sur jQuery et je me demande quelle est la différence entre jQuery get()
et les eq()
fonctions. Je peux mal comprendre ce que fait la get()
fonction, mais j'ai trouvé étrange que je ne puisse pas appeler une fonction sur l'élément renvoyé dans la même ligne.
//Doesn't work
I.e. $("h2").get(0).fadeIn("slow");
//Works
$("h2").eq(0).fadeIn("slow");
jquery
jquery-selectors
contactmatt
la source
la source
Réponses:
.get()
et les.eq()
deux renvoient un seul "élément" à partir d'un tableau d'objets jQuery, mais ils renvoient l'élément unique sous différentes formes..eq()
le renvoie comme un objet jQuery, ce qui signifie que l'élément DOM est encapsulé dans le wrapper jQuery, ce qui signifie qu'il accepte les fonctions jQuery..get()
renvoie un tableau d'éléments DOM bruts. Vous pouvez manipuler chacun d'eux en accédant à ses attributs et en invoquant ses fonctions comme vous le feriez sur un élément DOM brut. Mais il perd son identité en tant qu'objet enveloppé de jQuery, donc une fonction jQuery comme.fadeIn
ne fonctionnera pas.la source
get()
renvoie un élément DOM tandis que:eq()
eteq()
renvoie un élément jQuery. Puisque les éléments DOM n'ont pas de méthode,fadeIn()
cela échoue .http://api.jquery.com/get/
http://api.jquery.com/eq-selector/
la source
get(0)
(docs) renvoie le premier élément DOM de l'ensemble.eq(0)
(docs) renvoie le premier élément DOM de l'ensemble, enveloppé dans un objet jQuery.C'est pourquoi
.fadeIn("slow");
ne fonctionne pas quand vous le faites.get(0)
. Un élément DOM n'a pas defadeIn()
méthode, mais un objet jQuery en a.la source
Pour construire sur les autres réponses:
la source
eq(i)
récupère le ième membre dans l'ensemble du récepteur en tantjQuery
qu'objet, tandis queget(i)
renvoie le membre à la ième position en tant qu'élément DOM.La raison pour laquelle cela ne fonctionne pas:
C'est parce que l'
h2
élément DOM n'a pas de méthode appeléefadeIn
.Vous devriez utiliser
eq(0)
ici à la place.la source
Je donne un exemple qui explique les points donnés par d'autres ici. considérez le code suivant
et le code js correspondant,
C'est ce que tu verras
Le premier est un objet DOM tandis que le second est un objet enveloppé de Jquery où vous pouvez appeler des méthodes Jquery
la source
La méthode jQuery eq () sélectionne un élément HTML avec un numéro d'index spécifique.
Voici un exemple de cela
Source: http://www.snoopcode.com/JQuery/jquery-eq-selector
la source
eq(2)
renvoie pas le troisième div?Les réponses ci-dessus ont été expliquées précisément et correctement. Je veux ajouter ici quelques points qui pourraient aider à l'utilisation de
get()
.Si vous ne passez pas d'argument à
.get()
, il renverra un tableau des éléments DOM.Si vous avez un objet DOM en utilisant
get()
, commevar s = $("#id").get(0)
vous pouvez le transformer en objet jQuery simplement en utilisant ceci,$(s)
Vous pouvez utiliser
$obj[i]
comme alternative si vous ne souhaitez pas utiliser$obj.get(i)
, voir ci-dessous,la source