JS判断选择框是否选中了

<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"去掉才行。为什么呀?

阅读 4.9k
4 个回答

.checked 返回的是Boolean

选中的话,checked == true

    if(oInput[i].checked == true){
        arry.push(oInput[i]);                
    };

你会发现部分浏览器 checked="false" 也是会选中的, 因为它们是根据是否拥有checked这个属性

可以使用check === "checked" 全等操作符不会进行类型转换

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题