jQuery 1.6,改变了它的.val()行为?

时间:2011-05-06 18:06:14

标签: jquery select option

在jQuery 1.6中,在我看来,自{jQuery 1.5.2}以来.val()函数已被更改。

当我在select的选项上调用它来获取值时,现在我得到了文本。 例如:

<option value="1">john</option>

我打电话的时候:

$('select').val();

使用jQuery 1.5.2我得到 1 而使用jQuery 1.6我得到 john

我知道他们改变了.attr()的行为并引入了.prop(),但在this link我无法找到关于.val()的任何内容。

Here是一个显示这种差异的例子,也是我迄今为止尝试获取选项值的一个例子。从jQuery 1.6切换到jQuery 1.5.2,看看。

如何使用jQuery 1.6获得选项的

2 个答案:

答案 0 :(得分:8)

您在jsfiddle示例中的错误是使用val 创建值,为此您应该使用attr('value', id)。然后val()仍然按预期工作,与之前的版本相同,您可以使用它获取option值。

http://jsfiddle.net/KFDWm/5/

答案 1 :(得分:4)

v1.6中存在一个错误,其中val('asdf')不再设置值:http://bugs.jquery.com/ticket/9071此错误已在v1.6.1中修复。

此外,尽管其他人已经说过,使用val()来设置值是完全可以的 - 实际上,根据jQuery团队的说法,它优于使用attr('value', 'asdf')