<body>
<input type="checkbox" value="1" name="check" checked="checked">
<input type="checkbox" value="2" name="check" >
<input type="checkbox" value="3" name="check" checked="checked">
<input type="button" value="选中的个数测算" id="btn">
<script>
var oBtn = document.getElementById("btn");
oBtn.onclick = function (){
var arry = [];
var oInput = document.getElementsByName("check");
for (var i = 0; i < oInput.length; i++) {
if(oInput[i].checked == "checked"){ //这样写弹出结果是0
arry.push(oInput[i]);
};
};
alert(arry.length);
};
</script>
if(oInput[i].checked == "checked")这样写,判断checked的属性值是否是checked有错吗?
正确结果的话后面== "checked"去掉才行。为什么呀?
.checked 返回的是Boolean
选中的话,checked == true
if(oInput[i].checked == true){
arry.push(oInput[i]);
};
可以使用check === "checked" 全等操作符不会进行类型转换
你会发现部分浏览器 checked="false" 也是会选中的, 因为它们是根据是否拥有checked这个属性