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.
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.
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 wiejoin()
.
Nun, verwechseln Sie nicht jQuery-Objekt mit DOM-Knoten / -Element .
this
sollte so einfach wie
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.
Hinweis: Ссылка
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).
Im Fall eines ID-Selektors hat das Anhängen von [0] keinen Sinn, weil $("#theIdOfTheElement")
immer das erste Element zurückgibt.
Tags und Links javascript arrays jquery