Soy nuevo en jQuery y me pregunto cuál es la diferencia entre las funciones get()
y de jQuery eq()
. Puede que no entienda lo que hace la get()
función, pero me pareció extraño que no pudiera llamar a una función en el elemento devuelto en la misma línea.
//Doesn't work
I.e. $("h2").get(0).fadeIn("slow");
//Works
$("h2").eq(0).fadeIn("slow");
jquery
jquery-selectors
contactmatt
fuente
fuente
Respuestas:
.get()
y.eq()
ambos devuelven un solo "elemento" de una matriz de objetos jQuery, pero devuelven el elemento único en diferentes formas..eq()
lo devuelve como un objeto jQuery, lo que significa que el elemento DOM está envuelto en el contenedor jQuery, lo que significa que acepta funciones jQuery..get()
devuelve una matriz de elementos DOM sin procesar. Puede manipular cada uno de ellos accediendo a sus atributos e invocando sus funciones como lo haría en un elemento DOM sin formato. Pero pierde su identidad como un objeto envuelto en jQuery, por lo que una función de jQuery como.fadeIn
no funcionará.fuente
get()
devuelve un elemento DOM mientras que:eq()
yeq()
devuelve un elemento jQuery. Dado que los elementos DOM no tienen métodofadeIn()
, falla .http://api.jquery.com/get/
http://api.jquery.com/eq-selector/
fuente
get(0)
(docs) devuelve el primer elemento DOM del conjunto.eq(0)
(docs) devuelve el primer elemento DOM del conjunto, envuelto en un objeto jQuery.Por eso
.fadeIn("slow");
no funciona cuando tú lo haces.get(0)
. Un elemento DOM no tiene unfadeIn()
método, pero un objeto jQuery sí.fuente
Para aprovechar las otras respuestas:
fuente
eq(i)
recupera el miembro i en el conjunto del receptor como unjQuery
objeto, mientras queget(i)
devuelve el miembro en la posición i como un elemento DOM.La razón por la que esto no funciona:
Es porque el
h2
elemento DOM no tiene un método llamadofadeIn
.Deberías usar
eq(0)
aquí en su lugar.fuente
Estoy dando un ejemplo que explica los puntos dados por otros aquí. considere el siguiente código
y el código js correspondiente,
esto es lo que verás
El primero es un objeto DOM, mientras que el segundo es un objeto envuelto en Jquery donde puede llamar a métodos Jquery
fuente
El método jQuery eq () selecciona un elemento HTML con un número de índice específico.
Aquí hay un ejemplo de eso
Fuente: http://www.snoopcode.com/JQuery/jquery-eq-selector
fuente
eq(2)
devuelve el tercer div?Las respuestas anteriores se han explicado de manera específica y correcta. Quiero agregar algunos puntos aquí que podrían ayudar con el uso de
get()
.Si no pasa un argumento a
.get()
, devolverá una matriz de los elementos DOM.Si tiene un objeto DOM usando
get()
, comovar s = $("#id").get(0)
si pudiera convertirlo de nuevo en un objeto jQuery simplemente usando esto,$(s)
Puede usarlo
$obj[i]
como una forma alternativa si no desea usar$obj.get(i)
, vea a continuación,fuente