自定义复选框再次点击无法取消对勾的功能修复问题
问题原因
原有代码存在两个核心逻辑问题:
- 每次点击只会将当前点击的复选框对勾设为显示,没有判断原有状态做切换,因此无法取消选中
- 如果在循环内加else分支,遍历过程中会把除当前点击项外的所有对勾都设为隐藏,自然就变成了单选效果
修复后的JS代码
function togchq3chn(x) { // 提取当前点击元素的序号,不需要遍历所有元素 const idNum = x.id.slice(2); const targetIcon = document.getElementById(`cd${idNum}`); // 直接切换当前对勾的显示状态 targetIcon.style.display = targetIcon.style.display === 'block' ? 'none' : 'block'; }
实现效果
- 点击未选中的复选框会显示对勾,完成选中操作
- 点击已选中的复选框会隐藏对勾,完成取消选中操作
- 多个复选框的选中状态互不干扰,支持同时选中多个
内容的提问来源于stack exchange,提问作者user3181077
相关产品推荐
相关产品推荐

