Ik heb een select control, en in een javascript variabele heb ik een tekst string.
Met behulp van jQuery wil ik het geselecteerde element van de select control instellen op het item met de tekstbeschrijving die ik heb (in tegenstelling tot de waarde, die ik niet'heb).
Ik weet dat het instellen op waarde vrij triviaal is. bijv.
$("#my-select").val(myVal);
Maar ik weet niet hoe ik dat via de tekst beschrijving moet doen. Ik denk dat er een manier moet zijn om de waarde uit de tekst beschrijving te krijgen, maar mijn hersenen zijn te vrijdagmiddag-ed om het te kunnen uitwerken.
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>
Merk op dat terwijl deze aanpak zal werken in versies die boven 1.6, maar minder dan 1.9, is het deprecated sinds 1.6. Het zal niet werken in jQuery 1.9+.
val()
zou beide gevallen moeten afhandelen.
$('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>