我有一个选择框和一个字符串,我会按字符串选择一个选项。 例如string =" Volvo"并选择这样的框:
<select>
<option value="v1">Volvo</option>
<option value="v2">Saab</option>
<option value="v3">Mercedes</option>
<option value="v4">Audi</option>
</select>
&#13;
有人可以帮我吗?
答案 0 :(得分:4)
使用 :contains()
伪类选择器获取包含特定字符串的选项。要更新已检查的媒体资源,请使用 prop()
方法。
$('option:contains("Volvo")').prop('selected', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option value="v1">Volvo</option>
<option value="v2">Saab</option>
<option value="v3">Mercedes</option>
<option value="v4">Audi</option>
</select>
要完全匹配,请使用 filter()
方法,因为 :contains()
不会检查完全匹配。
$('option').filter(function() {
// check trimmed text for filtering
return $.trim($(this).text()) == "Mercedes";
}).prop('selected', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option value="v1">Volvo</option>
<option value="v2">Saab</option>
<option value="v3">Mercedes</option>
<option value="v4">Audi</option>
</select>
答案 1 :(得分:0)
您可以使用:contains
选择器来实现此目的:
var $option = $('select option:contains("Volvo")');
或者,使用变量作为值:
var text = 'Volvo';
var $option = $('select option:contains("' + text + '")');
或者,您可以使用filter()
确保与所需值完全匹配:
var text = 'Volvo';
var $option = $('select option').filter(function() {
return $(this).text().trim() == text;
});
从那里你只需要将checked
属性设置为true
:
$option.prop('checked', true);