jQuery - indstilling af den valgte værdi af en select-kontrol via dens tekstbeskrivelse

Jeg har en select-kontrol, og i en javascript-variabel har jeg en tekststreng.

Ved hjælp af jQuery ønsker jeg at indstille det valgte element i select-kontrollen til at være det element med den tekstbeskrivelse, jeg har (i modsætning til værdien, som jeg ikke har).

Jeg ved, at det er ret trivielt at indstille det efter værdi. f.eks.

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

Men I'm en smule stumped på at gøre det via tekstbeskrivelsen. Der må vel være en måde at få værdien ud af tekstbeskrivelsen på, men min hjerne er for fredag eftermiddags-ed til at kunne regne det ud.

Løsning

Vælg efter beskrivelse for 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
Kommentarer (15)

Jeg har ikke testet det, men det kan måske virke for dig.

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

Hent børnene i valgfeltet; gennemløber dem; når du har fundet den ønskede, indstiller du den som den valgte indstilling; returner false for at stoppe sløjfen.

Kommentarer (0)