我正在尝试引用jQuery中checkbox的checked属性。只有当我在元素上的事件处理程序中引用this
时才会返回:
$("#chkACCEPT").click ->
alert this.checked // returns true
alert $("#chkACCEPT").checked // returns undefined
为什么第二行会返回undefined
?这看起来很疯狂。
答案 0 :(得分:2)
那是因为jQuery
对象没有.checked
属性,但是纯DOM
对象属于。{/ p>
因此,如果您想使用.checked
,可以使用this
,或从DOM
中提取原生jQuery
个对象:
alert(this.checked) or alert ($("#chkACCEPT")[0].checked)
或使用jQuery,使用 .prop() :
$(this).prop('checked'); // $("#chkACCEPT").prop('checked');
答案 1 :(得分: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
});