本文介绍如何使用JavaScript实现复选框的全选与联动功能。通过监听全选框点击事件,遍历子复选框同步选中状态;同时监听子复选框点击事件,判断是否全部选中以更新全选框状态,提供完整HTML结构与JS代码示例。
全选复选框功能逻辑概述
全选复选框的功能实现主要涉及两种交互场景:
第一种情况是用户单击全选框时,下方的所有子复选框应全部处于选中状态。
第二种情况是当用户逐一点击下方的子复选框时,若所有子项均被选中,则全选框自动变为选中状态;反之,只要有一个子项未被选中,全选框即取消选中。
HTML结构实现
以下是实现该功能所需的HTML结构示例:
<tr>
<td>爱 好</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;
}
}
以上即为全选复选框功能的完整实现方案,希望本文内容能对您的学习或工作有所帮助。如有任何疑问,欢迎留言交流,感谢支持!