Eu sou novo no jQuery e estou me perguntando qual é a diferença entre jQuery get()
e eq()
funções. Posso entender mal o queget()
função faz, mas achei estranho não poder chamar uma função no retornado no elemento retornado na mesma linha.
//Doesn't work
I.e. $("h2").get(0).fadeIn("slow");
//Works
$("h2").eq(0).fadeIn("slow");
jquery
jquery-selectors
contactmatt
fonte
fonte
Respostas:
.get()
e.eq()
ambos retornam um único "elemento" de um array de objetos jQuery, mas retornam o único elemento em diferentes formas..eq()
retorna-o como um objeto jQuery, o que significa que o elemento DOM é empacotado no wrapper jQuery, o que significa que ele aceita funções jQuery..get()
retorna uma matriz de elementos DOM brutos. Você pode manipular cada um deles acessando seus atributos e invocando suas funções como faria em um elemento DOM bruto. Mas ele perde sua identidade como um objeto embrulhado em jQuery, portanto, uma função jQuery como.fadeIn
não funcionará.fonte
get()
retorna um elemento DOM enquanto:eq()
eeq()
retorna um elemento jQuery. Como os elementos DOM não têm método,fadeIn()
ele falha .http://api.jquery.com/get/
http://api.jquery.com/eq-selector/
fonte
get(0)
(docs) retorna o primeiro elemento DOM no conjunto.eq(0)
(docs) retorna o primeiro elemento DOM no conjunto, envolvido em um objeto jQuery.É por isso
.fadeIn("slow");
que não funciona quando você faz.get(0)
. Um elemento DOM não tem umfadeIn()
método, mas um objeto jQuery tem.fonte
Para desenvolver outras respostas:
fonte
eq(i)
recupera o iº membro no conjunto do receptor como umjQuery
objeto, enquantoget(i)
retorna o membro na i-ésima posição como um elemento DOM.O motivo pelo qual isso não funciona:
É porque o
h2
elemento DOM não tem um método chamadofadeIn
.Você deve usar
eq(0)
aqui.fonte
Estou dando um exemplo que explica os pontos dados por outros aqui. considere o seguinte código
e o código js correspondente,
Isso é o que você vai ver
O primeiro é um objeto DOM, enquanto o último é um objeto empacotado Jquery onde você pode chamar métodos Jquery
fonte
O método jQuery eq () seleciona um elemento HTML com um número de índice específico.
Aqui está um exemplo disso
Fonte: http://www.snoopcode.com/JQuery/jquery-eq-selector
fonte
eq(2)
retorna o terceiro div?As respostas acima foram explicadas de forma específica e correta. Eu quero adicionar alguns pontos aqui que podem ajudar no uso de
get()
.Se você não passar um argumento para
.get()
, ele retornará um Array dos elementos DOM.Se você tem um objeto DOM usando
get()
, comovar s = $("#id").get(0)
você pode transformá-lo de volta em objeto jQuery simplesmente usando isso,$(s)
Você pode usar
$obj[i]
como uma forma alternativa se não quiser usar$obj.get(i)
, veja abaixo,fonte