当我运行以下自包含代码时,复选框会被选中并取消选中一次,但此后即使消息似乎暗示切换也没有。
<html>
<head>
<title>dummy</title>
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<input id="fc" type="checkbox" />
<script>
function f () {
if (typeof $("#fc").attr("checked") !== 'undefined') {
alert("checked, unchecking");
$("#fc").removeAttr("checked");
} else {
alert("unchecked, checking");
$("#fc").attr("checked", "checked");
}
setTimeout(f, 1000);
}
setTimeout(f, 1000);
</script>
</body>
</html>
答案 0 :(得分:20)
需要使用.prop()而不是.attr()来检查和取消选中复选框
$("#fc").prop("checked", true);// true to check false to uncheck
还可以使用:选中过滤器来检查是否选中了复选框
function f () {
if ($("#fc").is(":checked")) {
alert("checked, unchecking");
$("#fc").prop("checked", false);
} else {
alert("unchecked, checking");
$("#fc").prop("checked", true);
}
setTimeout(f, 1000);
}
setTimeout(f, 1000);
以上给出的样本可以简化为
function f () {
$("#fc").prop("checked", !$("#fc").is(":checked"));
}
setInterval(f, 1000);
演示:Fiddle