2016-04-22 26 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 
}); 
相關問題