全选、全不选案例

当我们在网页中使用复选框时,经常会遇到需要实现全选和全不选的功能。在这篇博客中,我将详细介绍如何使用JavaScript来实现全选和全不选的案例。

首先,我们需要一个具有全选功能的复选框。在这个案例中,我们使用一个idzong的复选框作为全选复选框。接下来,我们还有一组具有相同name属性的复选框作为选项复选框。

<label><input type="checkbox" id="zong"> 全选</label><br>
<label><input type="checkbox" name="aihao"> 选项1</label><br>
<label><input type="checkbox" name="aihao"> 选项2</label><br>
<label><input type="checkbox" name="aihao"> 选项3</label><br>
<label><input type="checkbox" name="aihao"> 选项4</label><br>

接下来,我们需要使用JavaScript来实现全选和全不选的功能。在<script>标签中添加以下代码:

window.onload = function () {
  var zong = document.getElementById("zong");
  var aihaoEles = document.getElementsByName("aihao");

  zong.onclick = function () {
    for (var i = 0; i < aihaoEles.length; i++) {
      aihaoEles[i].checked = zong.checked;
    }
  }

  for (var i = 0; i < aihaoEles.length; i++) {
    aihaoEles[i].onclick = function () {
      var count = 0;
      for (var j = 0; j < aihaoEles.length; j++) {
        if (aihaoEles[j].checked === true) {
          count++;
        }
      }
      zong.checked = (count === aihaoEles.length);
    }
  }
}

以上代码的功能如下:

  1. 获取全选复选框和选项复选框的引用。
  2. 当全选复选框被点击时,遍历选项复选框,将其状态设置为与全选复选框相同。
  3. 当选项复选框被点击时,统计被选中的选项复选框数量,并判断是否需要将全选复选框选中。

最后,在<head>标签中添加一些CSS样式来美化界面。这些样式将会设置标签<label>为块级元素,并设置复选框右边距为5像素。

<style>
  label {
    display: block;
    margin-bottom: 10px;
  }

  input[type="checkbox"] {
    margin-right: 5px;
  }
</style>

整个HTML文件如下:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>全选、全不选案例</title>
  <style>
    label {
      display: block;
      margin-bottom: 10px;
    }

    input[type="checkbox"] {
      margin-right: 5px;
    }
  </style>

</head>

<body>
  <h2>全选、全不选案例</h2>

  <label><input type="checkbox" id="zong"> 全选</label><br>
  <label><input type="checkbox" name="aihao"> 选项1</label><br>
  <label><input type="checkbox" name="aihao"> 选项2</label><br>
  <label><input type="checkbox" name="aihao"> 选项3</label><br>
  <label><input type="checkbox" name="aihao"> 选项4</label><br>
  <script>
    window.onload = function () {
      var zong = document.getElementById("zong");
      var aihaoEles = document.getElementsByName("aihao");

      zong.onclick = function () {
        for (var i = 0; i < aihaoEles.length; i++) {
          aihaoEles[i].checked = zong.checked;
        }
      }

      for (var i = 0; i < aihaoEles.length; i++) {
        aihaoEles[i].onclick = function () {
          var count = 0;
          for (var j = 0; j < aihaoEles.length; j++) {
            if (aihaoEles[j].checked === true) {
              count++;
            }
          }
          zong.checked = (count === aihaoEles.length);
        }
      }
    }
  </script>
</body>

</html>

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值