HTML上的jQuery val()选择Text优先于Value

时间:2009-10-21 07:30:20

标签: javascript jquery html

以下面的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??

为什么会这样?

4 个答案:

答案 0 :(得分:2)

val()方法获取或设置所选文本。您可能希望使用selectedIndex:

$('#selValues').get(0).selectedIndex=2; 

答案 1 :(得分:2)

使用

$("#selValues option[value='3']").attr('selected', 'selected');

也是一篇很好的文章

jQuery - Select elements - tips and tricks

答案 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