input标签页:
<input type="checkbox" name="">
<input type="button" name="clickme" id="clickme" onclick="toggle()" value="全选/取消">
问题代码:
function toggle(){
var state = document.getElementsByTagName("input")[0].getAttribute("checked");
console.log(state);
if(state == "checked"){
console.log("false");
document.getElementsByTagName("input")[0].setAttribute("checked","");
}else{
document.getElementsByTagName("input")[0].setAttribute("checked","checked");
}
}
没问题的代码:
function toggle(){
var state = document.getElementsByTagName("input")[0].checked;
console.log(state);
if(state == true){
console.log("false");
document.getElementsByTagName("input")[0].checked = null;
}else{
document.getElementsByTagName("input")[0].checked = true;
}
}
这里问题的关键在于attribute和property的区别!!!
如果你使用的是jQuery,正确的写法应该是使用prop方法:
栗子:
$("#CheckedAll").click(function () {
if ($(this).is(":checked")) {
$("[name=items]:checkbox").prop("checked", true);
} else {
$("[name=items]:checkbox").prop("checked", false);
}
});