如何使用jQuery在下拉列表中按文本值选择项目?

bec*_*lmw 14 javascript jquery dom

如果我有以下选择,并且不知道用于提前选择项目的值,就像在这个问题或我想要选择的项目的索引一样,如果我知道了,我怎么能用jQuery选择其中一个选项选项C之类的文本值?

<select id='list'>
<option value='45'>Option A</option>
<option value='23'>Option B</option>
<option value='17'>Option C</option>
</select>
Run Code Online (Sandbox Code Playgroud)

eye*_*ess 14

var option;
$('#list option').each(function() {
    if($(this).text() == 'Option C') {
        option = this;
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)


Sho*_*og9 14

这应该做的伎俩:

// option text to search for
var optText = "Option B";
// find option value that corresponds
var optVal = $("#list option:contains('"+optText+"')").attr('value');
// select the option value 
$("#list").val( optVal )
Run Code Online (Sandbox Code Playgroud)

正如眼睑指出的那样,当搜索的文本可以在多个选项中找到时,这将表现得不可预测.

  • 如果你想要完全匹配而不是"字符串中的某个地方",你可以使用选项[text ="optText"]而不是包含. (3认同)

Pav*_*uva 9

$("#list option").each(function() {
  this.selected = $(this).text() == "Option C";
});
Run Code Online (Sandbox Code Playgroud)