2016-04-22 24 views
1

我想在jQuery中引用复选框的选中属性。如何引用jQuery中元素的checked属性?

$("#chkACCEPT").click -> 
    alert this.checked     // returns true 
    alert $("#chkACCEPT").checked  // returns undefined 

为什么第二行返回undefined:如果我指的是this在事件处理中的元素它只会返回?这似乎很疯狂。

回答

2

那是因为jQuery对象没有.checked属性,但纯DOM对象没有。

所以,如果你想使用.checked你可以使用this,或从jQuery拉动本地DOM对象:

alert(this.checked) or alert ($("#chkACCEPT")[0].checked) 

或者使用jQuery,使用.prop()

$(this).prop('checked'); // $("#chkACCEPT").prop('checked'); 
1

.checked是与javascript对象关联而不是jquery对象的属性。对于使用它的jQuery对象,你需要将其转换为JS对象,然后使用checked财产

$("#chkACCEPT")[0].checked 

正确的方式做,这就是:

使用Javascript:

$("#chkACCEPT").click(function(){ 
    console.log(this.checked); //return bool value 
}); 

使用jQuery:

$("#chkACCEPT").click(function(){ 
    console.log($(this).is(':checked'));//return bool value 
}); 
相关问题