jQuery - angi den valgte verdien for en valgkontroll via tekstbeskrivelsen.

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

Ved hjelp av jQuery vil jeg sette det valgte elementet i valgkontrollen til å være elementet med tekstbeskrivelsen jeg har (i motsetning til verdien, som jeg ikke har).

Jeg vet at det er ganske trivielt å sette det etter verdi. f.eks.

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

Men jeg er litt stumpet på å gjøre det via tekstbeskrivelsen. Jeg antar at det må være en måte å få verdien ut fra tekstbeskrivelsen, men hjernen min er for fredag ettermiddag-ed til å kunne finne ut av det.

Løsning

Velg etter beskrivelse for jQuery v1.6+ (engelsk)

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 dette, men dette kan fungere for deg.

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

Hent barna til valgboksen; loop gjennom dem; når du har funnet den du vil ha, sett den som det valgte alternativet; returner false for å stoppe looping.

Kommentarer (0)