JavaScript复选框之全选、不选和反选

<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
window.function()
{
     var oBtn1=document.getElementById('btn1');
     var oBtn2=document.getElementById('btn2');
     var oBtn3=document.getElementById('btn3');
     var oDiv=document.getElementById('div1');
     var aCh=oDiv.getElementsByTagName('input');     //获取多个选项
     oBtn1.onclick=function()
     {
          for(var i=0;i<aCh.length;i++)                                         //使用for循环实现全选功能
          {
               aCh[i].checked=true;
          }
     };
     oBtn2.onclick=function()
     {
          for(var i=0;i<aCh.length;i++)                                           //使用for循环实现不选功能
          {
               aCh[i].checked=false;
           }
      };
      oBtn3.onclick=function()
      {
           for(var i=0;i<aCh.length;i++)
           {
                if(aCh[i].checked==true)                                                //使用if实现反选功能
                {  
                     aCh[i].checked=false;
                 }
                 else
                 {
                      aCh[i].checked=true;
                  }
              }
          };
      };
      </script>
      </head>
      <body>
      <input id="btn1" type="button" value="全选"/>
      <input id="btn2" type="buttton" value="不选"/>
      <input id="btn3" type="button" value="反选"/>
      <div id="div1">
      <input type="checkbox"/><br>
      <input type="checkbox"/><br>
      <input type="checkbox"/><br>
      <input type="checkbox"/><br>
      </div>
      </body>
      </html>
      

                  
             
             


           
     
Vue3中实现复选框全选反选功能可以通过以下步骤实现: 1. 在data中定义一个allChecked变量,用于表示是否全选。 2. 在data中定义一个testList数组,用于存储需要进行全选反选的数据。 3. 在created钩子函数中,对testList数组中的每个元素添加一个isChecked属性,用于表示该元素是否被选中。 4. 在watch中监听testList数组的变化,当testList数组中的元素被选中或取消选中时,判断是否全部选中,如果全部选中,则将allChecked变量设置为true,否则设置为false。 5. 在methods中定义handleAllChecked方法,用于实现全选反选功能。该方法接收一个参数v,用于表示是否全选。当v为true时,将testList数组中的每个元素的isChecked属性设置为true,否则设置为false。 6. 在methods中定义handleChecked方法,用于处理单个复选框的选中状态。该方法接收两个参数,item表示当前选中的元素,e表示当前元素的选中状态。当e为true时,将item的isChecked属性设置为true,否则设置为false。 下面是示例代码: ```javascript <template> <div> <input type="checkbox" v-model="allChecked" @change="handleAllChecked($event.target.checked)">全选 <div v-for="(item, index) in testList" :key="index"> <input type="checkbox" v-model="item.isChecked" @change="handleChecked(item, $event.target.checked)"> {{ item.id }} </div> </div> </template> <script> export default { data () { return { allChecked: false, testList: [ { id: 1, isChecked: false }, { id: 2, isChecked: false }, { id: 3, isChecked: false }, { id: 4, isChecked: false }, { id: 5, isChecked: false } ] } }, watch: { testList: { handler (val) { let i = 0 val.forEach(item => { if (item.isChecked === true) { i++ } }) if (i === val.length) { this.allChecked = true } else { this.allChecked = false } }, deep: true } }, methods: { handleAllChecked (v) { this.testList.forEach(item => { item.isChecked = v }) }, handleChecked (item, e) { item.isChecked = e } } } </script> ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值