JavaScript全选反选

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        
        <script>
            
            window.onload = function(){
                
                //全选
                document.getElementById("chkAll").onclick = function(){
                    
                    //console.log(this.checked);
                    
                    var interests = document.getElementsByName("interest");
                    
                    for(var i=0; i<interests.length; i++){
                        interests[i].checked = this.checked;
                    }
                    
                }
                
                //反选
                document.getElementById("btnReverse").onclick = function(){
                    
                    var interests = document.getElementsByName("interest");
                    
                    for(var i=0; i<interests.length; i++){
                        interests[i].checked = !interests[i].checked;
                    }
                    
                    //检查全选状态
                    checkAll();
                }
                
                //为每一个复选框注册单击事件
                var interests = document.getElementsByName("interest");
                for(var i=0; i<interests.length; i++){            
                    interests[i].onclick = checkAll;    //注册单击事件的处理函数,不能加()
                }
                
                //检查全选状态
                function checkAll(){
                    
                    /* 
                    //方式1
                    
                    var checkCount = 0;   //当前选中的个数
                    
                    var interests = document.getElementsByName("interest");
                    for(var i=0; i<interests.length; i++){
                        if(interests[i].checked){
                            checkCount++;
                        }
                    }
                    
                    document.getElementById("chkAll").checked = (checkCount == interests.length); 
                    */
                    
                    //方式2
                    var selectFlag = true;  //默认都选中
                    var interests = document.getElementsByName("interest");
                    for(var i=0; i<interests.length; i++){
                        if(!interests[i].checked){
                            selectFlag = false;
                            break;
                        }
                    }
                    
                    document.getElementById("chkAll").checked = selectFlag;
                }
                
            }
        </script>
    </head>
    <body>
        
        <input type="checkbox" name="interest"/>唱歌
        <input type="checkbox" name="interest"/>跳舞
        <input type="checkbox" name="interest"/>跑步
        <input type="checkbox" name="interest"/>游泳
        
        <br/>
        
        <input type="checkbox" id="chkAll"/>全选
        <input type="button" value="反选" id="btnReverse"/>
    </body>
</html>
原文地址:https://www.cnblogs.com/hr-7/p/14681921.html