JS表单全选以及反选

自作多情 提交于 2020-03-01 09:24:14

效果图:

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

在这里插入图片描述

<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>
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!