Ich habe ein Select-Steuerelement, und in einer Javascript-Variable habe ich einen Text-String.
Mit jQuery möchte ich das ausgewählte Element der Select-Steuerelement, um das Element mit der Textbeschreibung, die ich habe (im Gegensatz zu den Wert, die ich nicht haben) sein.
Ich weiß, dass die Einstellung nach Wert ziemlich trivial ist. z.B.
$("#my-select").val(myVal);
Aber ich bin ein bisschen ratlos, wie ich das über die Textbeschreibung machen soll. Ich schätze, es muss einen Weg geben, den Wert aus der Textbeschreibung herauszubekommen, aber mein Gehirn ist zu sehr mit Freitagnachmittag beschäftigt, als dass ich es herausfinden könnte.
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>
Beachten Sie, dass dieser Ansatz zwar in Versionen über 1.6, aber unter 1.9 funktioniert, aber seit 1.6 veraltet ist. Sie funktioniert nicht in jQuery 1.9+.
val()
sollte beide Fälle behandeln.
$('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>