Wenn Sie den Index, den Wert oder den Text kennen. auch wenn Sie keine ID für eine direkte Referenz haben.
Dies , das und das sind alles hilfreiche Antworten.
Beispiel Markup
<div class="selDiv">
<select class="opts">
<option selected value="DEFAULT">Default</option>
<option value="SEL1">Selection 1</option>
<option value="SEL2">Selection 2</option>
</select>
</div>
$("#my_select").val("the_new_value").change();
... ... von soAntworten:
Ein Selektor, um das mittlere Optionselement nach Wert zu erhalten, ist
Für einen Index:
Für einen bekannten Text:
BEARBEITEN : Wie oben kommentiert, war das OP möglicherweise nach dem Ändern des ausgewählten Elements der Dropdown-Liste. In Version 1.6 und höher wird die Methode prop () empfohlen:
In älteren Versionen:
EDIT2 : nach Ryans Kommentar. Eine Übereinstimmung mit "Auswahl 10" ist möglicherweise unerwünscht. Ich fand keine Wähler den vollständigen Text entsprechen, sondern ein Filter funktioniert:
EDIT3 : Seien Sie vorsichtig mit,
$(e).text()
da es eine neue Zeile enthalten kann, die den Vergleich fehlschlägt. Dies geschieht, wenn die Optionen implizit geschlossen sind (kein</option>
Tag):Wenn Sie einfach
e.text
ein zusätzliches Leerzeichen wie die nachfolgende neue Zeile verwenden, wird dies entfernt, wodurch der Vergleich robuster wird.quelle
Keine der oben genannten Methoden lieferte die Lösung, die ich brauchte, also dachte ich, ich würde das liefern, was für mich funktionierte.
quelle
prop
und nichtattr
..attr
ist korrekt. "Ausgewählt" ist ein Attribut der <Option> w3.org/TR/html5/forms.html#attr-option-selectedprop
bevorzugt zu verwendenattr
. Das erspart es, jede einzelne Eigenschaft auf w3.org nachschlagen zu müssen, um festzustellen, ob es sich nur um ein Attribut handelt oder ob es mit Sicherungsaktionen implementiert wurde.Sie können einfach die
val()
Methode verwenden:quelle
the_value
. .val ist keine Auswahl- / Filterfunktion! Es ist ein Eigenschafts-Accessor, dem die Zeichenfolge SETS den Wert übergibt. Ich habe versucht, meine Gegenstimme zurückzunehmen, war aber zu spät, nachdem ich dies beim Testen realisiert hatte.Was für mich mit jQuery 1.7 funktionierte, war der folgende Code. Versuchen Sie Folgendes:
quelle
.change()
war notwendig. Ich hatte ein Beispiel, in dem ich Thumbnails basierend auf einem SELECT wechselte. Wenn ich ein benutzerdefiniertes Thema hochgeladen habe, sollte es "Benutzerdefiniertes Thema" aus der Liste der Optionen auswählen. Der.prop()
Anruf funktionierte, aber ohne das.change()
wurde das Miniaturbild rechts von meiner Auswahl nie aktualisiert.prop
Wert generiert dieselbe Ausgabe. zB.prop('selected', true)
Es gibt eine Reihe von Möglichkeiten, dies zu tun, aber der sauberste Ansatz ist unter den Top-Antworten und vielen Argumenten verloren gegangen
val()
. Außerdem wurden einige Methoden ab jQuery 1.6 geändert, sodass ein Update erforderlich ist.Für die folgenden Beispiele gehe ich davon aus, dass die Variable
$select
ein jQuery-Objekt ist, das auf das gewünschte<select>
Tag zeigt, z. B. über Folgendes:Hinweis 1 - Verwenden Sie val () für Wertübereinstimmungen:
Für die Wertübereinstimmung ist die Verwendung
val()
viel einfacher als die Verwendung eines Attributselektors: https://jsfiddle.net/yz7tu49b/6/Die Setter-Version von
.val()
wird aufselect
Tags implementiert, indem dieselected
Eigenschaft eines Matchingsoption
mit demselben festgelegtvalue
wird. Sie funktioniert also in allen modernen Browsern einwandfrei.Hinweis 2 - Requisite verwenden ('ausgewählt', wahr):
Wenn Sie den ausgewählten Status einer Option direkt festlegen möchten, können Sie
prop
(nichtattr
) einenboolean
Parameter (anstelle des Textwertsselected
) verwenden:zB https://jsfiddle.net/yz7tu49b/
Hinweis 3 - Unbekannte Werte berücksichtigen:
Wenn Sie ein
val()
auswählen<option>
, der Wert jedoch nicht übereinstimmt (dies kann je nach Quelle der Werte auftreten), wird "nichts" ausgewählt und$select.val()
zurückgegebennull
.Für das gezeigte Beispiel und aus Gründen der Robustheit könnten Sie also Folgendes verwenden : https://jsfiddle.net/1250Ldqn/ :
Anmerkung 4 - genaue Textübereinstimmung:
Wenn Sie nach genauem Text übereinstimmen möchten, können Sie eine
filter
with-Funktion verwenden. zB https://jsfiddle.net/yz7tu49b/2/ :Wenn Sie jedoch möglicherweise zusätzliche Leerzeichen haben, möchten Sie dem Check möglicherweise einen Zuschnitt wie in hinzufügen
Anmerkung 5 - Übereinstimmung nach Index
Wenn Sie nach Index übereinstimmen möchten, indizieren Sie einfach die untergeordneten Elemente der Auswahl, z. B. https://jsfiddle.net/yz7tu49b/3/.
Obwohl ich heutzutage dazu neige, direkte DOM-Eigenschaften zugunsten von jQuery zu vermeiden, um zukunftssicheren Code zu verwenden, könnte dies auch als https://jsfiddle.net/yz7tu49b/5/ erfolgen :
Hinweis 6 - Verwenden Sie change (), um die neue Auswahl auszulösen
In allen oben genannten Fällen wird das Änderungsereignis nicht ausgelöst. Dies ist beabsichtigt, damit Sie nicht mit rekursiven Änderungsereignissen enden.
Fügen Sie zum Generieren des Änderungsereignisses bei Bedarf einfach einen Aufruf zum
.change()
jQuery-select
Objekt hinzu. Das allererste einfachste Beispiel lautet beispielsweise https://jsfiddle.net/yz7tu49b/7/.Es gibt auch viele andere Möglichkeiten, die Elemente mithilfe von Attributselektoren zu finden, z. B.
[value="SEL2"]
Sie müssen jedoch berücksichtigen, dass Attributselektoren im Vergleich zu all diesen anderen Optionen relativ langsam sind.quelle
Sie können die Auswahl benennen und Folgendes verwenden:
Es sollte die gewünschte Option auswählen.
quelle
quelle
Beantwortung meiner eigenen Frage zur Dokumentation. Ich bin sicher, dass es andere Möglichkeiten gibt, dies zu erreichen, aber dies funktioniert und dieser Code wird getestet.
quelle
Genau es wird funktionieren versuchen Sie diese unten Methoden
quelle
Mit jquery-2.1.4 habe ich die folgende Antwort gefunden, um für mich zu arbeiten:
Wenn Sie einen Zeichenfolgenwert haben, versuchen Sie Folgendes:
Andere Beispiele haben bei mir nicht funktioniert, deshalb füge ich diese Antwort hinzu.
Ich fand die ursprüngliche Antwort unter: https://forum.jquery.com/topic/how-to-dynamically-select-option-in-dropdown-menu
quelle
Zum Einstellen des Auswahlwerts bei ausgewählter Auslösung:
Zum Einstellen der Option aus einem Bereich:
Dieser Code verwendet den Selektor, um das ausgewählte Objekt mit der Bedingung herauszufinden, und ändert dann das ausgewählte Attribut um
attr()
.Außerdem empfehle ich,
change()
nach dem Festlegen des Attributs ein Ereignis hinzuzufügen. Aufselected
diese Weise wird der Code fast so geändert, dass die Auswahl vom Benutzer geändert wird .quelle
Ich benutze dies, wenn ich den Index der Liste kenne.
Dadurch kann sich die Liste ändern und das Änderungsereignis auslösen. Das ": nth (n)" zählt ab Index 0
quelle
Ich werde gehen mit: -
quelle
Versuche dies
Sie verwenden einfach die Auswahlfeld-ID anstelle von #id (dh # select_name).
anstelle von Optionswert verwenden , um Ihre wählen Sie die Option Wert
quelle
Für Jquery ausgewählt, wenn Sie das Attribut an function senden und die Option update-select benötigen
quelle
quelle
Das
$('select').val('the_value');
sieht nach der richtigen Lösung aus und wenn Sie Datentabellenzeilen haben, dann:quelle
Wenn Sie jQuery nicht verwenden möchten, können Sie den folgenden Code verwenden:
quelle
Danke für die Frage. Hoffe, dieser Code wird für Sie funktionieren.
quelle
oder
quelle