JQuery设置下拉列表框选择选项 - 不是按值,而是按显示文本

时间:2014-12-15 20:07:38

标签: javascript jquery html

这可能已经得到解答,但我无法在任何地方找到已回答的问题......

假设我们有以下HTML ...

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Dropdown Test</title>
    </head>
    <body>
        <select name="myDropDownListName" id="myDropDownListID" class="dropdown">
            <option selected="selected" value="0">Please select a value...</option>
            <option value="1">My Custom Value 1</option>
            <option value="2">My Custom Value 2</option>
            <option value="3">My Custom Value 3</option>
        </select>
    </body>
</html>

JQuery命令将“我的自定义值2”设置为下拉列表框中当前选择的选项,假设我不知道索引的“值”值,并且只能通过文字'我的自定义价值2'?

3 个答案:

答案 0 :(得分:5)

您可以使用jquery .filter()

&#13;
&#13;
$('#myDropDownListID option').filter(function() {
    //you can use this.innerText too
    return $(this).text() === 'My Custom Value 2';
}).prop('selected', true);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="myDropDownListName" id="myDropDownListID" class="dropdown">
  <option selected="selected" value="0">Please select a value...</option>
  <option value="1">My Custom Value 1</option>
  <option value="2">My Custom Value 2</option>
  <option value="3">My Custom Value 3</option>
</select>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

就像这样:

$('select').val($("select option:contains('My custom Value 2')").val());

答案 2 :(得分:0)

另一种方式......使用contains selector按内容搜索DOM元素。

$('select>option:contains("My Custom Value 2")').prop('selected', true);