Es fällt mir schwer, mich um den jQuery eq zu kümmern. Kann mir jemand seinen Gebrauch erklären? Was und wie indexiert es?
danke.
.eq(i)
gibt ein Element aus einer Sammlung bei einem angegebenen Index i
zurück.
Im Beispiel aus dem von Ihnen geposteten Link:
$("p").eq(1).css("color", "red")
Im Grunde heißt es: "Finde alle Elemente, die mit $ (" p ") übereinstimmen, dann nimm die zweite und ändere ihre Farbe in Rot."
$("p")
stimmt mit allen <p>
-Elementen in Ihrem Dokument überein. Sie haben jetzt eine Sammlung von denen.
$("p").eq(1)
reduziert diese Auflistung nur auf das zweite Element.
Der .css("color", "red")
-Teil arbeitet einfach an diesem Element, um seine Farbe in Rot zu ändern.
Um zu verstehen, wie eq()
funktioniert, glaube ich, dass es hilfreich ist, zu verstehen, wie $()
funktioniert in jQuery. Wenn Sie
Was zurückgegeben wird, ist ein jQuery -Objekt (manchmal als umbrochener Satz bezeichnet), das neben anderen Eigenschaften eine Eigenschaft hat, die startet mit 0
und Inkrementieren um 1 für jedes Element, das mit dem Selektor übereinstimmt. Eine length
-Eigenschaft wird ebenfalls festgelegt, weshalb die übereinstimmenden Elemente eines jQuery-Objekts wie ein Array durchlaufen werden können (mit einer for-Schleife oder Befehlen wie each([callback])
).
Sehen wir uns nun die Quelle für eq()
wir sehen, dass eq()
mit dem slice()
-Befehl des jQuery-Objekts erreicht wird, also haben wir auch Ein Blick darauf
und müssen auch auf pushStack()
schauen, einen Befehl, der intern ziemlich viel benutzt wird
Wir können sehen, dass pushStack
ein Array akzeptiert und ein neues jQuery-Objekt zurückgibt. Die Elemente, die die übereinstimmenden Elemente des neuen jQuery-Objekts bilden, erhalten Sie, indem Sie Function.apply
in der JavaScript-Funktion slice
und übergeben Sie die arguments
der jQuery-Slice-Funktion als argsArray
.
Der Befehl get()
ist dagegen einfacher. Werfen wir einen Blick auf die Quelle
ohne ein Argument für den Parameter num
aufgerufen, wird das jQuery-Objekt mithilfe von Function.call
für die Funktion JavaScript-Array slice
. Wenn num
definiert ist, wird der Wert zurückgegeben, der in der entsprechenden Eigenschaft des jQuery-Objekts enthalten ist, ähnlich wie in den folgenden
Es hört sich so an, als würden Sie sich auf das Wort "index" einlassen.
In diesem Fall bezieht sich "index" auf ein bestimmtes Element in einer Objektgruppe. So erhalten Sie mit eq Zugriff auf ein einzelnes Element innerhalb einer übereinstimmenden Menge von Elementen.
Tags und Links jquery