jQuery:选择不工作,总是返回相同的值

时间:2013-03-20 01:00:59

标签: javascript jquery html

我面临一个非常奇怪的问题,其中jQuery:selected总是返回相同的值。

举个例子,假设我有这个HTML:

<select class="some_select">
   <option value="0">Zero</option>
   <option value="1">One</option>
</select>

然后我在$(document).ready():

上运行这个jQuery代码
    $('.some_select').change(function() {
        alert($(this).attr('value'));
    });

在上面的情况中,警报始终显示所选选项的良好值,但如果我运行此:

var type = $('.some_select :selected').attr('value');

使用此代码,无论选择何种选项,警报始终返回“0”。

我也尝试过:

$('.some_select').find(':selected')

$('.some_select').filter(':selected')

$('.some_select option:selected')

先谢谢你的帮助!

3 个答案:

答案 0 :(得分:1)

我要点评Explosion Pills评论。您正在寻找的代码是

$('.some_select').change(function() {
   console.log($(":selected").attr('value'));
});

答案 1 :(得分:0)

这是因为你需要.change(function(){..})所以它可以在更改时更新值,当更改值时,你没有更新代码的其他代码片段。或者我误解了什么?

答案 2 :(得分:0)

select元素没有value属性,因此警告$(this).attr('value')会提醒undefined,而不是所声明的所选选项的“正常价值”。

您不需要在此处使用:selected伪类。只需使用select的.val()方法来检索其当前值:

$('.some_select').change(function() {
    alert($(this).val());
});

以下是演示:http://jsfiddle.net/qGuxt/