Was ist in jQuery das Äquivalent zu document.getElementById("selectlist").value
?
Ich versuche, den Wert eines ausgewählten Listenelements abzurufen.
Vielen Dank.
Tonyf
Was ist in jQuery das Äquivalent zu document.getElementById("selectlist").value
?
Ich versuche, den Wert eines ausgewählten Listenelements abzurufen.
Vielen Dank.
James Weisemann
„Äquivalent“ ist hier das Stichwort
Während…
$('#selectlist').val();
…ist äquivalent zu…
document.getElementById("selectlist").value
… es ist erwähnenswert, dass …
$('#selectlist')
…obwohl “äquivalent” nicht dasselbe ist wie…
document.getElementById("selectlist")
… da ersteres ein jQuery-Objekt zurückgibt, kein DOM-Objekt.
Verwenden Sie Folgendes, um das/die DOM-Objekt(e) aus dem jQuery-Objekt abzurufen:
$('#selectlist').get(); //get all DOM objects in the jQuery collection
$('#selectlist').get(0); //get the DOM object in the jQuery collection at index 0
$('#selectlist')[0]; //get the DOM objects in the jQuery collection at index 0
vielleicht ein wenig tangential hier, aber das wäre eine großartige Info: Gibt es eine Möglichkeit, das DOM-Objekt aus dem jQuery-Objekt zu erhalten? bearbeiten: hat meine eigene Frage in Bearbeiten beantwortet.
– Clayton Hughes
27. Februar 2011 um 20:56 Uhr
Ich habe meinen Kopf eine Stunde lang gegen die Wand geschlagen, bis mir klar wurde, dass getElementById() nicht durch $() ersetzt werden kann. Vielen Dank für diese Antwort!
– stricken
17. August 2012 um 9:16 Uhr
@knite – Ja. Ich wünschte, ich hätte mir das von jemandem erklären lassen, als ich jQuery zum ersten Mal benutzte.
– James Weisemann
17. August 2012 um 12:20 Uhr
danke für die spätere Erklärung zum Abrufen von DOM-Objekten in jquery :).
– Kailash19
22. Oktober 2012 um 10:21 Uhr
+1 Oldie, aber ein Leckerbissen. Ich habe versucht herauszufinden, warum Google Maps ein DOM-Objekt akzeptiert hat, aber mein jQuery-Objekt nicht akzeptiert hat. Eine schnelle Google-Suche führte mich hierher, nicht zu jQuery-Dokumenten.
– TonyG
13. Februar 2013 um 17:55 Uhr
$('#selectlist').val();
Wow. Du hast den Jackpot gewonnen LOL.
– Jakob Relkin
10. März 2011 um 0:30 Uhr
RodH257
Chaos ist genau richtig, aber für diese Art von Fragen sollten Sie sich das ansehen Jquery-Dokumentation online – es ist wirklich ziemlich umfangreich. Die Funktion, nach der Sie suchen, heißt “jquery selectors”.
Im Allgemeinen tun Sie $('#ID').val()
– Das .afterwards kann eine Reihe von Dingen mit dem Element tun, das vom Selektor zurückgegeben wird. Sie können auch alle Elemente einer bestimmten Klasse auswählen und mit jedem etwas tun. In der Dokumentation finden Sie einige gute Beispiele.
Sayannayas
Es kann auf drei verschiedene Arten durchgeführt werden, obwohl alle fast gleich sind
Javascript-Weg
document.getElementById('test').value
Jquery-Weg
$("#test").val()
$("#test")[0].value
$("#test").get(0).value
Für diejenigen, die sich fragen, ob jQuery-ID-Selektoren langsamer sind als document.getElementById, lautet die Antwort ja, aber nicht aufgrund des Vorurteils, dass es das gesamte DOM auf der Suche nach einem Element durchsucht. jQuery verwendet tatsächlich die native Methode. Das liegt eigentlich daran, dass jQuery zuerst einen regulären Ausdruck verwendet, um Zeichenfolgen im Selektor zu trennen, um sie zu überprüfen, und natürlich den Konstruktor ausführt:
rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/
Während die Verwendung eines DOM-Elements als Argument sofort mit „this“ zurückkehrt.
Also das:
$(document.getElementById('blah')).doSomething();
Wird immer schneller sein als das:
$('#blah').doSomething();
James Weisemann
In manchen Fällen weiß ich aber nicht mehr warum $('#selectlist').val()
wird nicht immer den richtigen Artikelwert zurückgeben, also verwende ich $('#selectlist option:selected').val()
stattdessen.
Sie erhalten wahrscheinlich Abwertungen, weil Ihre Fragen in nur wenigen Sekunden bei Google oder durch Lesen der JQuery-Dokumentation beantwortet werden können.
– Zombie
21. August 2009 um 5:15 Uhr
+1 zu Mandeln für tapfere SO-Benutzer. Seine Frage ist vollkommen berechtigt, egal wie einfach/schwer sie zu lösen war. Mehr Zugriffe auf SO für zukünftige Suchen zu diesem Thema.
– Herr smith
21. August 2009 um 5:22 Uhr
Leute, jQuery-Voodoo ist nicht so einfach zu lernen für einen alten Mann wie mich, Server-Entwickler, der ich in den letzten 20 Jahren oder so war – seid nett und macht es uns jQuery-Neulingen leicht! 🙂
– marc_s
21. August 2009 um 5:33 Uhr
@Boekwurm Ben – er mag mutig sein, aber Sie können den SO-Benutzern auch keinen Vorwurf machen. Die Leute sehen im Allgemeinen gerne ein wenig Mühe von der Person, die die Frage stellt.
– Zombie
21. August 2009 um 5:37 Uhr
Soweit ich mich erinnere, war dies das erste, was ich über jQuery nicht verstanden habe. Ich denke, es ist eine berechtigte Frage, wenn man die Wahrheit sagt, und das Abschreiben war hart. stackoverflow.com/questions/75296/…
– James Weisemann
21. August 2009 um 6:08 Uhr