Was entspricht in jQuery document.getElementById("selectlist").value
?
Ich versuche, den Wert eines ausgewählten Listenelements zu ermitteln.
Vielen Dank.
Was entspricht in jQuery document.getElementById("selectlist").value
?
Ich versuche, den Wert eines ausgewählten Listenelements zu ermitteln.
Vielen Dank.
Antworten:
"Äquivalent" ist hier das Wort
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 die DOM-Objekte von jQuery 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
Chaos ist genau richtig , aber für diese Art von Fragen sollten Sie die Jquery-Dokumentation online lesen - sie ist wirklich ziemlich umfassend. Die Funktion, nach der Sie suchen, heißt "jquery selectors".
Im Allgemeinen tun Sie dies $('#ID').val()
- die .afterwards können eine Reihe von Dingen für das Element ausführen, das vom Selektor zurückgegeben wird. Sie können auch alle Elemente einer bestimmten Klasse auswählen und mit jedem Element etwas anfangen. In der Dokumentation finden Sie einige gute Beispiele.
Es kann auf drei verschiedene Arten geschehen, 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 die jQuery-ID-Selektoren langsamer als document.getElementById sind, lautet die Antwort "Ja", jedoch nicht aufgrund der Vorurteile, dass das gesamte DOM nach einem Element durchsucht wird. jQuery verwendet tatsächlich die native Methode. Dies liegt tatsächlich daran, dass jQuery zuerst einen regulären Ausdruck verwendet, um Zeichenfolgen im Selektor zu trennen, nach denen gesucht werden soll, und natürlich den Konstruktor auszuführen:
rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/
Während die Verwendung eines DOM-Elements als Argument sofort mit 'this' zurückgegeben wird.
Also das:
$(document.getElementById('blah')).doSomething();
Wird immer schneller sein als das:
$('#blah').doSomething();
In einigen Fällen, an die ich mich nicht erinnern kann, warum, aber $('#selectlist').val()
nicht immer den richtigen Artikelwert zurückgibt, verwende ich $('#selectlist option:selected').val()
stattdessen.