Ich bin neu in jQuery und frage mich, was der Unterschied zwischen jQuery get()
und eq()
Funktionen ist. Ich kann falsch verstehen, was die get()
Funktion tut, aber ich fand es seltsam, dass ich keine Funktion für das zurückgegebene Element in derselben Zeile aufrufen konnte.
//Doesn't work
I.e. $("h2").get(0).fadeIn("slow");
//Works
$("h2").eq(0).fadeIn("slow");
jquery
jquery-selectors
Kontaktmatt
quelle
quelle
Antworten:
.get()
und.eq()
beide geben ein einzelnes "Element" aus einem jQuery-Objektarray zurück, aber sie geben das einzelne Element in verschiedenen Formen zurück..eq()
Gibt es als jQuery-Objekt zurück, dh das DOM-Element wird in den jQuery-Wrapper eingeschlossen, was bedeutet, dass es jQuery-Funktionen akzeptiert..get()
Gibt ein Array von unformatierten DOM-Elementen zurück. Sie können jeden von ihnen manipulieren, indem Sie auf seine Attribute zugreifen und seine Funktionen wie bei einem unformatierten DOM-Element aufrufen. Es verliert jedoch seine Identität als in jQuery eingeschlossenes Objekt, sodass eine jQuery-Funktion wie.fadeIn
diese nicht funktioniert.quelle
get()
Gibt ein DOM-Element zurück, während:eq()
undeq()
ein jQuery-Element zurückgibt . Da DOM-Elemente keine MethodefadeIn()
haben, schlägt dies fehl .http://api.jquery.com/get/
http://api.jquery.com/eq-selector/
quelle
get(0)
(docs) gibt das erste DOM-Element in der Menge zurück.eq(0)
(docs) gibt das erste DOM-Element in der Menge zurück, das in ein jQuery-Objekt eingeschlossen ist.Deshalb
.fadeIn("slow");
funktioniert es nicht, wenn Sie es tun.get(0)
. Ein DOM-Element hat keinefadeIn()
Methode, ein jQuery-Objekt jedoch.quelle
Um auf den anderen Antworten aufzubauen:
quelle
eq(i)
Ruft das i- te Element im Empfänger-Set alsjQuery
Objekt ab, währendget(i)
das Element an der i-ten Position als DOM-Element zurückgegeben wird.Der Grund, warum dies nicht funktioniert:
Dies liegt daran, dass für das
h2
DOM-Element keine Methode aufgerufen wirdfadeIn
.Sie sollten
eq(0)
stattdessen hier verwenden.quelle
Ich gebe ein Beispiel, das die Punkte erklärt, die andere hier gegeben haben. Betrachten Sie den folgenden Code
und den entsprechenden js-Code,
Das werden Sie sehen
Das erste ist ein DOM-Objekt, während das zweite ein in Jquery eingeschlossenes Objekt ist, in dem Sie Jquery-Methoden aufrufen können
quelle
Die Methode jQuery eq () wählt ein HTML-Element mit einer bestimmten Indexnummer aus.
Hier ist ein Beispiel dafür
Quelle: http://www.snoopcode.com/JQuery/jquery-eq-selector
quelle
eq(2)
das dritte div nicht zurück?Die obigen Antworten wurden spezifisch und richtig erklärt. Ich möchte hier einige Punkte hinzufügen, die für die Verwendung von hilfreich sein könnten
get()
.Wenn Sie kein Argument an übergeben
.get()
, wird ein Array der DOM-Elemente zurückgegeben.Wenn Sie ein DOM-Objekt mit verwenden
get()
,var s = $("#id").get(0)
können Sie es einfach wieder in ein jQuery-Objekt umwandeln.$(s)
Sie können
$obj[i]
alternativ verwenden, wenn Sie nicht verwenden möchten$obj.get(i)
, siehe unten,quelle