使用javascript选择文本选择选项

时间:2016-06-25 19:13:30

标签: javascript jquery

我有一个选择框和一个字符串,我会按字符串选择一个选项。 例如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;
&#13;
&#13;

有人可以帮我吗?

2 个答案:

答案 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);