以下面的HTML选择为例:
<select name="selValues" id="selValues">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">5</option>
<option value="4">3</option>
</select>
如果我们编写以下jQuery语句:
$('#selValues').val('2'); // Two will get selected
$('#selValues').val('3'); // 3 will get selected instead of 5??
为什么会这样?
答案 0 :(得分:2)
val()方法获取或设置所选文本。您可能希望使用selectedIndex:
$('#selValues').get(0).selectedIndex=2;
答案 1 :(得分:2)
使用
$("#selValues option[value='3']").attr('selected', 'selected');
也是一篇很好的文章
答案 2 :(得分:2)
当选择选项时,jQuery首先查看值,然后查看选项的文本。它还按顺序通过选项。因此,$('#selValues').val('3')
首先选择选项3,但在此之后将选择更改为选项4(因为它具有文本“3”)。使用多项选择可以看到实际上两个选项都已选中
<select name="selValues" id="selValues" multiple="multiple">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">5</option>
<option value="4">3</option>
</select>
答案 3 :(得分:2)
从JQuery 1.4开始,现在已经明确了。它现在将按值选择,而不是按文本值http://jquery14.com/day-01#backwards
选择如果您确实仍需按值选择,则建议的方法为here