jQuery - Setzen des ausgewählten Wertes eines Select-Controls über dessen Textbeschreibung

Ich habe ein Select-Steuerelement, und in einer Javascript-Variable habe ich einen Text-String.

Mit jQuery möchte ich das ausgewählte Element der Select-Steuerelement, um das Element mit der Textbeschreibung, die ich habe (im Gegensatz zu den Wert, die ich nicht haben) sein.

Ich weiß, dass die Einstellung nach Wert ziemlich trivial ist. z.B.

$("#my-select").val(myVal);

Aber ich bin ein bisschen ratlos, wie ich das über die Textbeschreibung machen soll. Ich schätze, es muss einen Weg geben, den Wert aus der Textbeschreibung herauszubekommen, aber mein Gehirn ist zu sehr mit Freitagnachmittag beschäftigt, als dass ich es herausfinden könnte.

Lösung

Auswahl nach Beschreibung für jQuery v1.6+

var text1 = 'Two';
$("select option").filter(function() {
  //may want to use $.trim in here
  return $(this).text() == text1;
}).prop('selected', true);

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<select>
  One
  Two
Kommentare (15)

Ich habe das nicht getestet, aber es könnte für Sie funktionieren.

$("select#my-select option")
   .each(function() { this.selected = (this.text == myVal); });
Kommentare (0)

Holen Sie sich die Kinder des Auswahlfeldes; Schleife durch sie; wenn Sie das gewünschte gefunden haben, setzen Sie es als die ausgewählte Option; return false, um die Schleife zu beenden.

Kommentare (0)