0

为什么这个简单的 if 语句总是说该框未选中?

  $("#x").prop('checked',true);
//$("#x").prop('checked',false);

 if ($("#x").checked) {
     alert("Checbox is checked");
 } else {
     alert("Checkbox is not checked");
 }

http://jsfiddle.net/f4Tmu/

4

4 回答 4

2

.checked不是 jquery 属性,而是 DOM 元素属性。

您必须使用.is(':checked').prop('checked')

$("#x").prop('checked',true);
//$("#x").prop('checked',false);

if ($("#x").is(':checked')) {
     alert("Checbox is checked");
 } else {
     alert("Checkbox is not checked");
 }
于 2013-07-29T01:21:55.477 回答
1

我相信在 jQuery 中你可以使用:checked选择器,但在你的情况下我只会使用原生的。从您的代码中的样子来看,您正在使用本机和 jQuery 的混合。我不确定它是否正确。

尝试这个:

var x = document.getElementById('x');
x.setAttribute('checked', 'checked');

if (x.checked) {
    // Checkbox is checked
} else {
    // Checkbox is not checked
}
于 2013-07-29T01:21:57.883 回答
1

checked是一个 DOM 元素属性,所以在 DOM 元素上使用它:

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

http://jsfiddle.net/f4Tmu/13/

否则使用:

$("#x").is(':checked')

http://jsfiddle.net/f4Tmu/16/

于 2013-07-29T01:25:40.063 回答
-2

这是我的答案,经过测试:

$("#x").attr('checked',true);
//$("#x").prop('checked',false);

if ($("#x").attr("checked")) {
     alert("Checbox is checked");
} else {
     alert("Checkbox is not checked");
}
于 2013-07-29T01:26:13.117 回答