Was bedeutet $ (selector) [0] in jQuery?

9

Die Syntax, die ich nicht verstehe, ist diese:

%Vor%

Ich habe diese Syntax ziemlich oft gesehen und ich habe sie eine Zeitlang ignoriert, weil ich sie nie benutzen musste. Aber jetzt, um den Code von diesem Beitrag zu verstehen Wie lade ich ein Bild mit dem Parse.com javascriptSDK hoch? , ich kann es nicht länger ignorieren.

Ich weiß, dass [0] diese Syntax normalerweise für ein Array verwendet wird. Aber es scheint ein wenig komisch, dass ein Verweis auf ein id ein Array irgendeiner Art erzeugen würde.

    
Jae Kim 25.09.2015, 13:57
quelle

4 Antworten

9

Wenn Sie [0] an das jQuery-Objekt anhängen, wird das erste DOM-Element zurückgegeben.

Da Sie hier den ID-Selektor verwenden, gibt es nur ein Element im Array, sodass [0] sinnvoll ist. Wenn Sie mehrere Elemente auswählen, können Sie auch eine beliebige Zahl verwenden, die zwischen 0 und der Anzahl der Elemente liegt. Sie können das entsprechende DOM-Element erhalten.

Von jQuery-Dokumenten

  

Ein jQuery-Objekt enthält eine Sammlung von DOM-Elementen (Document Object Model), die aus einer HTML-Zeichenfolge erstellt oder aus einem Dokument ausgewählt wurden. Da jQuery-Methoden häufig CSS-Selektoren verwenden, um Elemente aus einem Dokument abzugleichen, wird die Menge der Elemente in einem jQuery-Objekt oft als eine Menge "passender Elemente" oder "ausgewählter Elemente" bezeichnet.

     

Das jQuery-Objekt selbst verhält sich ähnlich wie ein Array; Es hat eine Eigenschaft length und die Elemente im Objekt können über ihre numerischen Indizes [0] bis [length-1] aufgerufen werden. Beachten Sie, dass ein jQuery-Objekt kein Javascript-Array-Objekt ist. Es enthält also nicht alle Methoden eines echten Array-Objekts wie join() .

    
Tushar 25.09.2015, 13:58
quelle
2

Nun, verwechseln Sie nicht jQuery-Objekt mit DOM-Knoten / -Element .

this sollte so einfach wie

sein %Vor%

und

%Vor%

z.B.

%Vor%
  

Wir dürfen nicht vergessen, dass sowohl $(target)[0] als auch $(target).get(0)   gibt das gleiche DOM-Element zurück, das DOM-Eigenschaften wie .innerHTML hat   und Methoden wie .appendChild() , aber keine jQuery-Methoden wie    .html() oder .after() , während $(target).eq(0) eine jQuery zurückgibt   Objekt mit nützlichen Methoden wie .html() und .after() .

was mehr ist

%Vor%

Obwohl logo1 und logo2 auf die gleiche Weise erstellt werden (und dasselbe DOM-Element umbrechen), sind sie nicht dasselbe Objekt.

%Vor%

Hinweis: Ссылка

    
kolunar 31.03.2017 06:02
quelle
0

Laut der jQuery-Dokumentation gibt $ () eine Sammlung übereinstimmender Elemente zurück, die entweder im DOM basierend auf übergebenen Argumenten gefunden oder durch Übergabe einer HTML-Zeichenfolge erstellt wurden. Indem Sie [0] hinzufügen, nehmen Sie den Collection-Wrapper vom Element und geben nur das tatsächliche DOM-Element zurück, wenn Sie mit einer ID arbeiten. Wenn Sie mit einer Klasse arbeiten, würden Sie das Element an der Array-Position zurückgeben, die durch die Klammernotation übergeben wurde (in diesem Fall die erste, da Arrays 0 in JavaScript sind).

    
rphuber 25.09.2015 14:03
quelle
0

Im Fall eines ID-Selektors hat das Anhängen von [0] keinen Sinn, weil $("#theIdOfTheElement") immer das erste Element zurückgibt.

    
Zakaria Ra 25.09.2015 14:45
quelle

Tags und Links