我正在使用一个应用程序,我需要创建一个select然后能够更改值,这样如果它被重置,它将更改为新值。这意味着更改DOM上的值而不仅仅是显示给用户的值。例如.val()不起作用,因为如果重置选择框,它将恢复为先前的值。我发现使用其他元素执行此操作的方法是使用.attr(“value”,)函数。问题是这不适用于选择。我还需要通过值设置select而不是我选择的选项的索引。我理想的是寻找一些与attr相同的东西。
答案 0 :(得分:2)
value
中没有<select>
属性,默认值通过在该选项上设置selected
属性来表示。
您可以使用属性选择器按值选择选项:$("#selectID option[value='foo']")
$("#change").click(function() {
$("foo option").attr("selected", false);
$("#foo option[value='2']").attr("selected", true);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<select id="foo">
<option value="1" selected>One</option>
<option value="2">Two</option>
</select>
<input type="reset"/>
</form>
<button id="change">Change default</button>
&#13;
请注意,这也会更改当前选择,而不仅仅是默认选择。我还没有找到改变默认方式的方法。