JavaScript实现全选与反选复选框逻辑

作者:窗边听雨时间:2026-10-22 07:11:10浏览:205

本文介绍如何使用JavaScript实现复选框的全选与联动功能。通过监听全选框点击事件,遍历子复选框同步选中状态;同时监听子复选框点击事件,判断是否全部选中以更新全选框状态,提供完整HTML结构与JS代码示例。

全选复选框功能逻辑概述

全选复选框的功能实现主要涉及两种交互场景:

第一种情况是用户单击全选框时,下方的所有子复选框应全部处于选中状态。

第二种情况是当用户逐一点击下方的子复选框时,若所有子项均被选中,则全选框自动变为选中状态;反之,只要有一个子项未被选中,全选框即取消选中。

HTML结构实现

以下是实现该功能所需的HTML结构示例:


<tr>
     <td>爱&nbsp;&nbsp;好</td>
     <td>
      <label for=""><input type="checkbox" name="fav" id="" value="苹果" class="btn"/>苹果</label>
     </td>
     <td>
      <label for=""><input type="checkbox" name="fav" id="" value="香蕉" class="btn"/>香蕉</label>
     </td>
     <td>
      <label for=""><input type="checkbox" name="" id="checkAll" value="全选" class="btn"/>全选</label>
     </td>
    </tr>

JavaScript代码实现

接下来是核心的JavaScript逻辑实现:


var oChkAll = document.getElementById("checkAll");
    //全选
    oChkAll.onclick = function() {
     for(var i = 0; i < oFav.length; i++) {
      oFav[i].checked = this.checked;
     }
    }
    //复选框组
    for(var i = 0; i < oFav.length; i++) {
     oFav[i].onclick = function() {
      //如果全选
      if(isChkAll()) {
       oChkAll.checked = true;
      } else {
       oChkAll.checked = false;
      }
     }
    }
    //判断是否全选
    function isChkAll() {
     var all = oFav.length;
     var chk = 0;
     for(var i = 0; i < oFav.length; i++) {
      if(oFav[i].checked) {
       chk++;
      }
     }
     if(all == chk) {
      return true;
     } else {
      return false;
     }
    }

以上即为全选复选框功能的完整实现方案,希望本文内容能对您的学习或工作有所帮助。如有任何疑问,欢迎留言交流,感谢支持!

作者最新文章