Definiere jQuery "eq"

7

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.

    
superUntitled 15.09.2009, 17:06
quelle

5 Antworten

11

Mit diesem HTML:

%Vor%

Und dieses JavaScript:

%Vor%     
jimyi 15.09.2009, 17:08
quelle
9

.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.

    
Stuart Thompson 15.09.2009 17:09
quelle
4

Um zu verstehen, wie eq() funktioniert, glaube ich, dass es hilfreich ist, zu verstehen, wie $() funktioniert in jQuery. Wenn Sie

angeben %Vor%

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()

an %Vor%

wir sehen, dass eq() mit dem slice() -Befehl des jQuery-Objekts erreicht wird, also haben wir auch Ein Blick darauf

%Vor%

und müssen auch auf pushStack() schauen, einen Befehl, der intern ziemlich viel benutzt wird

%Vor%

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

%Vor%

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

%Vor%     
Russ Cam 15.09.2009 19:38
quelle
1

Sehen Sie sich das Beispiel aus der Dokumentation an:

%Vor%     
SilentGhost 15.09.2009 17:10
quelle
0

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.

    
Dan Esparza 15.09.2009 19:11
quelle

Tags und Links