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.
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>
<option value="0">One</option>
<option value="1">Two</option>
</select>
var text1 = 'Two';
$("select option").filter(function() {
//may want to use $.trim in here
return $(this).text() == text1;
}).attr('selected', true);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<select>
<option value="0">One</option>
<option value="1">Two</option>
</select>
Huomaa, että vaikka tämä lähestymistapa toimii versioissa, jotka ovat yli 1.6 mutta alle 1.9, se on poistettu käytöstä 1.6:n jälkeen. Se ei toimi jQueryssä 1.9+.
val()
:n pitäisi käsitellä molempia tapauksia.
$('select').val('1'); // selects "Two"
$('select').val('Two'); // also selects "Two"
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<select>
<option value="0">One</option>
<option value="1">Two</option>
</select>