JS表单全选以及反选

效果图:

  • 当表单内所有均被选择时,最上方全选自动勾选;
  • 当表单内有选项未被选择时,最上方全选自动取消;
  • 当最上方全选勾选时,表单内所有均被自动勾选。

在这里插入图片描述

<body>
    <div class="wrap">
        <table>
            <thead>
              <tr>
                  <th>
                      <input type="checkbox" id="j_cbAll" />
                  </th>
                  <th>商品</th>
                  <th>价钱</th>
              </tr>
            </thead>
            <tbody id="j_tb">
              <tr>
                  <td>
                      <input type="checkbox" />
                  </td>
                  <td>iPhone8</td>
                  <td>8000</td>
              </tr>
              <tr>
                  <td>
                      <input type="checkbox" />
                  </td>
                  <td>iPad Pro</td>
                  <td>5000</td>
              </tr>
              <tr>
                  <td>
                      <input type="checkbox" />
                  </td>
                  <td>iPad Air</td>
                  <td>2000</td>
              </tr>
              <tr>
                  <td>
                      <input type="checkbox" />
                  </td>
                  <td>Apple Watch</td>
                  <td>2000</td>
              </tr>
    
            </tbody>
        </table>
        <input type="button" value="  反 选  " id="btn">
    </div>
	<script type="text/javascript">
		//1.获取元素
		var j_cbAll = document.getElementById('j_cbAll');
		var j_tbs = document.getElementById('j_tb').getElementsByTagName('input');
		j_cbAll.onclick = function() {
			//this.checked若为true则表示选中该选择框
			for (var i = 0 ; i < j_tbs.length; i++) {
				j_tbs[i].checked = this.checked;
			}
		}
		//2.下面全部选中,上面选中
		for (var i = 0; i < j_tbs.length; i++){	
			j_tbs[i].onclick = function() {
				var flag = true;
				for(var i = 0 ; i < j_tbs.length; i++){
					console.log(!j_tbs[i].ckecked);
					if (!j_tbs[i].checked) {
						flag = false;	
					}
				}
				// console.log(flag);
				j_cbAll.checked = flag;
				
			}
		}
	</script>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值