jQuery和'select'标签

时间:2011-08-08 06:31:02

标签: jquery select jquery-selectors option

我有<select>标记,我需要选择所选选项的值。

<select id="foo">
  <option value="1">a</option>
  <option value="2">b</option>
  <option value="3">c</option>
</select>

使用jQuery我尝试使用val()方法来执行此操作:

$('#foo').val();

问题是它总是返回1 - 所选选项的默认值!

为什么会这样?

5 个答案:

答案 0 :(得分:5)

试试这个

$("#foo option:selected").val();

编辑:DEMO here

答案 1 :(得分:2)

如果<select>元素不包含selected属性的选项,则默认选择第一个选项。

如果更改选择并运行val(),您将获得不同的值。

试试这个并告诉我每次更改时它是否仍然给你相同的值

$('#foo').change(function() {
    console.log($(this).val());
});

答案 2 :(得分:2)

试试这个:

 $('#foo :selected').val();

检查一下:

$('#foo').change(function() {
    console.log($('#foo :selected').val());
}).change(); // this change will fire for first time and give the value `1`

答案 3 :(得分:0)

$("select option:selected").each(function () {
    $(this).val();
});

答案 4 :(得分:0)

如果您的多个DOM元素具有您在选择器中使用的id属性,也会发生这种情况。

jQuery会将事件正确绑定到所有元素,但在请求其值时只使用DOM中的第一个元素。