在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获得选项的值?
答案 0 :(得分:8)
您在jsfiddle示例中的错误是使用val
创建值,为此您应该使用attr('value', id)
。然后val()
仍然按预期工作,与之前的版本相同,您可以使用它获取option
值。
答案 1 :(得分:4)
v1.6中存在一个错误,其中val('asdf')
不再设置值:http://bugs.jquery.com/ticket/9071此错误已在v1.6.1中修复。
此外,尽管其他人已经说过,使用val()来设置值是完全可以的 - 实际上,根据jQuery团队的说法,它优于使用attr('value', 'asdf')
。