Ich habe ein Auswahlsteuerelement und in einer Javascript-Variablen habe ich eine Textzeichenfolge.
Mit jQuery möchte ich das ausgewählte Element des Auswahlsteuerelements als das Element mit der Textbeschreibung festlegen, die ich habe (im Gegensatz zu dem Wert, den ich nicht habe).
Ich weiß, dass es ziemlich trivial ist, es nach Wert zu setzen. z.B
$("#my-select").val(myVal);
Aber ich bin ein bisschen ratlos, wenn ich es über die Textbeschreibung mache. Ich denke, es muss eine Möglichkeit geben, den Wert aus der Textbeschreibung herauszuholen, aber mein Gehirn ist zu freitagnachmittags, um es herausfinden zu können.
javascript
jquery
DanSingerman
quelle
quelle
Antworten:
Wählen Sie anhand der Beschreibung für jQuery v1.6 + aus
jQuery-Versionen unter 1.6 und größer oder gleich 1.4
Beachten Sie, dass dieser Ansatz zwar in Versionen funktioniert, die über 1.6, aber unter 1.9 liegen, jedoch seit 1.6 veraltet ist. Es wird nicht funktionieren , in jQuery 1.9+.
Vorherige Versionen
val()
sollte beide Fälle behandeln.quelle
value
wenn das Attribut angegeben wurde, und nur per Text ausgewählt wird, wenn dasvalue
Attribut fehlt. In diesem Beispiel$('select').val('Two')
wird also die zweite Option in 1.3.x ausgewählt, in 1.4.x jedoch nichts.Ich habe das nicht getestet, aber das könnte für Sie funktionieren.
quelle
Versuchen Sie dies ... um die Option mit dem Text myText auszuwählen
quelle
$("#my-Select option[text=" + myText +"]").get(0).selected = true;
Von Zeit zu Zeit musste ich mich sogar zum klassischen Stil entschließen : (....prop
anstelle von.attr
; Die Ursache für die Änderung ist, dass jQuery in 1.9 die alten Hacks deaktiviert hat, mit denen Sie.attr
einige DOM-Eigenschaften sowie HTML-Attribute ändern können. (Google,javascript dom properties vs attributes
wenn Sie den Unterschied nicht kennen.).prop('selected', true)
anstelle der.attr('selected', 'selected')
Kompatibilität mit jQuery 1.9+.Ich mache es auf diese Weise (jQuery 1.9.1)
Hinweis: Vergessen Sie nicht die Änderung (), ich musste deswegen zu lange suchen :)
quelle
gibt den Wert der ersten Option zurück, die Ihre Textbeschreibung enthält. Getestet und funktioniert.
quelle
Um alle Komplikationen der jQuery-Version zu vermeiden, empfehle ich ehrlich, eine dieser wirklich einfachen Javascript-Funktionen zu verwenden ...
quelle
Ich weiß, dass dies ein alter Beitrag ist, aber ich konnte ihn mit jQuery 1.10.3 und den oben genannten Lösungen nicht per Text auswählen. Am Ende habe ich den folgenden Code verwendet (Variation der Spoulson-Lösung):
Hoffe es hilft jemandem.
quelle
Diese Linie funktionierte:
quelle
Die if-Anweisung stimmt genau mit "zwei" und "zwei drei" überein
quelle
Der einfachste Weg mit 1.7+ ist:
1,9+
Getestet und funktioniert.
quelle
.prop
, um DOM-Eigenschaften zu ändern, nicht.attr
(dies gilt für HTML / DOM-Attribute). Siehe stackoverflow.com/q/5874652/1709587Hier ist ein sehr einfacher Weg. Bitte benutzen Sie es
quelle
Schauen Sie sich das Plugin jquery selectedbox an
Wählen Sie Optionen nach Wert aus, indem Sie eine Zeichenfolge als Parameter
$("#myselect2").selectOptions("Value 1");
oder einen regulären Ausdruck verwenden$("#myselect2").selectOptions(/^val/i);
.Sie können auch bereits ausgewählte Optionen löschen:
$("#myselect2").selectOptions("Value 2", true);
quelle
Nur eine Randnotiz. Mein ausgewählter Wert wurde nicht festgelegt. Und ich hatte überall im Netz gesucht. Eigentlich musste ich nach einem Rückruf von einem Webdienst einen Wert auswählen, weil ich Daten von ihm bekam.
Die Aktualisierung des Selektors war also das einzige, was mir fehlte.
quelle
Ich habe festgestellt, dass bei Verwendung
attr
mehrere Optionen ausgewählt werden, wenn Sie dies nicht möchten. Die Lösung besteht darin, Folgendes zu verwendenprop
:$("#myDropDown option:text=" + myText +"").prop("selected", "selected");
quelle
Ich hatte ein Problem mit den obigen Beispielen, und das Problem wurde durch die Tatsache verursacht, dass meine Auswahlfeldwerte mit Zeichenfolgen fester Länge von 6 Zeichen vorgefüllt sind, der übergebene Parameter jedoch keine feste Länge hatte.
Ich habe eine RPAD-Funktion, die einen String mit der angegebenen Länge und dem angegebenen Zeichen nach rechts auffüllt. Nach dem Auffüllen des Parameters funktioniert es also.
quelle
quelle
Diese akzeptierte Antwort scheint nicht korrekt zu sein, während .val ('newValue') für die Funktion korrekt ist. Der Versuch, eine Auswahl anhand ihres Namens abzurufen, funktioniert bei mir nicht. Ich musste die ID und den Klassennamen verwenden, um mein Element abzurufen
quelle
Hier ist eine einfache Option. Legen Sie einfach Ihre Listenoption fest und legen Sie den Text als ausgewählten Wert fest:
quelle
Holen Sie sich die Kinder des Auswahlfeldes; Schleife durch sie; Wenn Sie die gewünschte gefunden haben, legen Sie sie als ausgewählte Option fest. Geben Sie false zurück, um die Schleife zu beenden.
quelle