纯javascript实现选择框的全选与反选

 HTML部分

  <div id="wrap_input_box" >
            <input type="checkbox"><br>
            <input type="checkbox"><br>
            <input type="checkbox"><br>
            <input type="checkbox"><br>
            <input type="checkbox"><br>
            <input type="checkbox"><br>
            <input type="checkbox"><br>
            <input type="checkbox"><br>
            <input type="checkbox"><br>
            <input type="checkbox"><br>
            
      </div>
      <label for="olabel">选择全部 一键上路<input type="checkbox" id= 'all'></label> 

js部分

  var oinput = document.getElementById('all');
        //  var oinput_s = document.getElementsByTagName('input');
         var oinput_s = document.querySelectorAll('#wrap_input_box>input');
        //  console.log(oinput_s[6]);
        // 先设置点击全选按钮后 实现所有的选择标签显示选择     取消点击后  取消所有标签选择
        oinput.onclick = function(){
            if (this.checked){
                for (var i =0;i<oinput_s.length;i++){
                    oinput_s[i].checked=true;
                }
            }else{
                for (var i =0;i<oinput_s.length;i++){
                    oinput_s[i].checked=false;
                }
            }
        }
        // 下面设置的是   每个小标签如果在全选状态下取消选择其中的某一个 对应的按钮的状态会变为没有全选
                // 给每个小选择标签设置绑定点击事件
        for(var j = 0;j<oinput_s.length;j++){
             oinput_s[j].onclick = function (){
                   //定义一个标志位  这个标志位 用来判断后面的选择按钮的状态
                   var flag = true;
                   //遍历每个小选择标签    判断 如果每一个小标签是非选择状态   将标志位改为 false 状态 即对应为未选择
                   for (k=0;k<oinput_s.length;k++){
                       if(!oinput_s[k].checked){
                           flag=false;
                           break;
                       }
                       
                   }

                   if(flag){
                       oinput.checked=true;
                   }else{
                       oinput.checked=false;
                   }
                   
             }
        }

猜你喜欢

转载自www.cnblogs.com/tandongcn/p/10669685.html
今日推荐