$("input[type=radio]").change(function(){
alert(this.val());
});
为什么这行不通?我想要的是每当选中一个单选按钮时,页面都会弹出其值。
$("input[type=radio]").change(function(){
alert(this.val());
});
我认为你需要这样做:
$("input[type=radio]").change(function(){
alert($(this).val());
});
正如@Eonasdan所说,你需要使用$(this).val()
。
原因是this
指向普通的DOM元素,而.val()
需要一个jQuery对象。
顺便提一下,在属性选择器中,你必须引用属性值:$("input[type='radio']")
可以试试这个:
$("input[type=radio]").change(function(){
alert($(this).val());
});
你必须将this
包装在jQuery对象中才能使用.val()方法。
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());
});