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); } });