jQuery - 如何按文本选择下拉列表项?

时间:2011-01-21 09:26:25

标签: javascript jquery jquery-selectors

如何按文字而非价值选择下拉列表项?

我想用jQuery按文本选择一个下拉项。

6 个答案:

答案 0 :(得分:39)

使用:contains()(link)

$("select option:contains(text)").attr('selected', true);

demo

答案 1 :(得分:9)

您可以使用filter function on jQuery来获取具有更具体内容的元素

$("select option").filter(function() {
    return $(this).text() == "text_to_select";
});

这将返回文本中“text_to_select”的所有选项。

答案 2 :(得分:3)

我认为这会为你做到这一点......

$("#selectId").find("option:contains('text')").each(function(){
  if( $(this).text() == 'Text that should be matched' ) {
    $(this).attr("selected","selected");
  }
});

答案 3 :(得分:0)

这是我使用的代码(它与此处的其他建议不完全相同,适用于jQuery v1.8.3)

var userToSearchFor = 'mike';   //  Select any options containing this text

$("#ListOfUsers").find("option:contains('" + userToSearchFor +"')").each(function () {
   $(this).attr("selected", "selected");
});

<select id="ListOfUsers" ></select>

希望这有帮助。

答案 4 :(得分:0)

我有类似的情况,有国家,州和城市的下拉菜单。国家有&#34;印度&#34;以及&#34;英属印度洋领地&#34;。 :contains()的问题在于它会尝试两种匹配。我做了类似的事情:

$('#country option').each(function(){
    if($(this).text() == 'India'){
        $(this).prop('selected', true).trigger('change');
    }
});

答案 5 :(得分:0)

$("selecter option:contains('" + data[i].ID+ "')").attr('selected', 'selected');