Ich habe Probleme, hier die richtige Terminologie zu finden, aber wenn Sie ein jQuery-Objekt haben ...
$('#MyObject')
... ist es möglich das Basiselement zu extrahieren? Das heißt, das Äquivalent dazu:
document.getElementById('MyObject')
Ja, benutze .get(index)
. Laut Dokumentation :
Die
.get()
Methode gewährt Zugriff auf die DOM-Knoten, die jedem jQuery-Objekt zugrunde liegen.
$('#MyObject').get(0);
Ich denke, das ist was du willst. Ich denke, Sie können es auch wie ein normales Array referenzieren mit:
$('#MyObject')[0];
Aber ich bin mir nicht sicher, ob das immer funktionieren wird. Halten Sie sich an die erste Syntax.
$('#MyObject).get(0)
in den HTML-Tags bin:before
und wenn ich Chrome:after
benutze. Irgendeine Idee, was diese bedeuten?Ein jQuery-Objekt besteht aus einer Reihe von Elementen. In Ihrem Fall eine Menge von einem Element. Dies unterscheidet sich von bestimmten anderen Bibliotheken, die einzelne Elemente umschließen und eine alternative Syntax für Selektoren bereitstellen, die mehrere Übereinstimmungen zurückgeben.
Aaron W und VolkerK haben bereits erklärt, wie auf das erste Element (Index 0) in der Menge zugegriffen werden kann .
quelle
Ich habe Aarons Aussagen in allen Browsern getestet, die ich auf meiner Box habe:
$('#MyObject').get(0);
vs.
$('#MyObject')[0];
Soweit ich das beurteilen kann, ist es nur eine Frage der persönlichen Präferenz.
Funktionell sind diese beiden Anweisungen sowohl für vorhandene als auch für nicht vorhandene Elemente gleichwertig. Ich habe die folgenden Browser getestet: Chrome 27.0, FF 21.0, IE10, IE9, IE8, IE7, IE6.
In den von mir durchgeführten Geschwindigkeitstests konnte nicht immer festgestellt werden, welche Variation schneller war. Das Ergebnis war nicht immer konsistent, selbst im selben Browser. Für die Geschwindigkeitstests habe ich nur vorhandene Elemente getestet. Meine Testergebnisse sind hier .
quelle