我有一个选择字段,其中有一些选项。现在我需要用jQuery选择其中一个选项。但是,当我只知道必须选择的选项的值时,我该怎么做呢?

我有以下HTML:

<div class="id_100">
  <select>
    <option value="val1">Val 1</option>
    <option value="val2">Val 2</option>
    <option value="val3">Val 3</option>
  </select>
</div>

我需要选择值为val2的选项。如何做到这一点呢?

这是一个演示页面: http://jsfiddle.net/9Stxb/


当前回答

这里有很多解决方案来改变所选的值,但没有一个对我有用,因为我的挑战与操作略有不同。我需要根据这个值过滤另一个选择下拉。

大多数人使用$("div.id_100").val("val2").change();让它为他们工作。我不得不稍微修改这个$("div#idOfDiv select").val("val2").trigger("change")。

这还不够,我还必须确保等待文档加载。我的完整代码如下所示:

$(document).ready(function() {
    $("div#idOfDiv select").val("val2").trigger("change");
});

其他回答

您可以使用属性选择器[attributename=optionalvalue]选择任何属性及其值,因此在您的情况下,您可以选择该选项并设置所选属性。

$("div.id_100 > select > option[value=" + value + "]").prop("selected",true);

其中value是您希望通过的值。

如果您需要删除任何先前选择的值,就像多次使用这种情况一样,您需要稍微更改它,以便首先删除所选的属性

$("div.id_100 option:selected").prop("selected",false);
$("div.id_100 option[value=" + value + "]")
        .prop("selected",true);

最好在设置select value之后使用change()。

$("div.id_100 select").val("val2").change();

通过这样做,代码将关闭更改用户的选择,解释包括在JS提琴:

JS小提琴

最简单的方法是:

HTML

<select name="dept">
   <option value="">Which department does this doctor belong to?</option>
   <option value="1">Orthopaedics</option>
   <option value="2">Pathology</option>
   <option value="3">ENT</option>
</select>

jQuery

$('select[name="dept"]').val('3');

输出:这将激活ENT。

这肯定适用于选择控件:

$('select#ddlCountry option').each(function () {
if ($(this).text().toLowerCase() == co.toLowerCase()) {
    this.selected = true;
    return;
} });
<select name="contribution_status_id" id="contribution_status_id" class="form-select">
    <option value="1">Completed</option>
    <option value="2">Pending</option>
    <option value="3">Cancelled</option>
    <option value="4">Failed</option>
    <option value="5">In Progress</option>
    <option value="6">Overdue</option>
    <option value="7">Refunded</option>
</select>

按值设置为Pending状态:

$('#contribution_status_id').val("2");