欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

全选(JS)

程序员文章站 2024-03-21 14:15:34
...
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    全选<input type="checkbox" id="all">
    <p>
        <input type="checkbox">
        <input type="checkbox">
        <input type="checkbox">
        <input type="checkbox">
      </p>
      <script>
          var all = document.querySelector('#all')
          var checks = document.querySelectorAll('p input') // 单选都在p标签里
          // 用一个变量来记录被选中单选的数量  
          var n = 0 // 默认一个都没有选

          // 全选联动单选
          // 全选按钮绑定属性改变的事件:change
          all.onchange = function(){
              console.log(this.checked)
              // 所有单选checked属性跟全选的checked属性值一致
              for(var i = 0; i < checks.length; i++){
                  checks[i].checked = this.checked
                  // 这里也要修改n
                  n = this.checked ? checks.length : 0
              }
          }
          // 给每一个单选都绑上事件
          for(var i = 0; i < checks.length; i++){
              checks[i].onchange = function(){
                  // 如果当前是选中,n++,取消就--
                  this.checked ? n++ : n--
                  console.log(n)
                  // 判断n跟length是否相等
                  if(n === checks.length){
                      all.checked = true
                  }else{
                    all.checked = false
                  }
              }
          }
      </script>
</body>
</html>
相关标签: javascript