jQuery - select-ohjaimen valitun arvon asettaminen sen tekstin kuvauksen kautta

Minulla on valintaohjain, ja javascript-muuttujassa on merkkijono.

Käyttämällä jQueryä haluan asettaa valintakontrollin valitun elementin elementiksi sen kohteen, jossa on tekstin kuvaus (toisin kuin arvo, jota minulla ei ole).

Tiedän, että sen asettaminen arvon mukaan on melko triviaalia. esim.

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

Mutta olen hieman ymmälläni sen tekemisestä tekstikuvauksen kautta. On kai oltava jokin tapa saada arvo pois tekstikuvauksesta, mutta aivoni ovat liian perjantai-iltapäiväiset, jotta voisin selvittää sen.

Ratkaisu

Valitse kuvauksen mukaan jQuery v1.6+:lle

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
Kommentit (15)

En ole testannut tätä, mutta tämä saattaa toimia sinulle.

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

Hae valintaruudun lapset; käy ne läpi silmukalla; kun olet löytänyt haluamasi, aseta se valituksi vaihtoehdoksi; palauta false lopettaaksesi silmukan.

Kommentit (0)