Jquery val()不起作用?

时间:2011-12-21 21:33:57

标签: jquery

$("input[type=radio]").change(function(){
    alert(this.val());
}); 

为什么这不起作用? 我想要的是每次选择单选按钮时,页面都会提醒其值。

5 个答案:

答案 0 :(得分:10)

我相信你需要这样做:

$("input[type=radio]").change(function(){
    alert($(this).val());
}); 

答案 1 :(得分:5)

正如@Eonasdan所说,你需要使用$(this).val()

原因是this指向普通DOM元素,.val()需要jQuery对象。

顺便说一句,必须在属性选择器中引用属性值:$("input[type='radio']")

答案 2 :(得分:1)

您需要'jQuerify'this对象:

而不是this.val()它应该是$(this).val()

答案 3 :(得分:0)

试试这个,而不是:

$("input[type=radio]").change(function(){
    alert($(this).val());
});

必须将this包装在jQuery对象中才能使用.val()方法。

答案 4 :(得分:0)

在jQuery中,您传递给它的API函数提供this作为匹配您的选择器的DOM元素。但是,this不是jQuery对象,它实际上是DOM元素的简单。如果要在this上调用jQuery方法,则需要在{jQuery:this中包装$(this)

$("input[type=radio]").change(function(){
    alert($(this).val());
});

如果多次使用它,请不要忘记缓存它,以避免反复重新创建包装。

$("input[type=radio]").change(function(){
    var $this = $(this);
    $this.addClass('omgitchanged');
    alert($this.val());
});