如何用JavaScript实现仅选中ID以C1结尾的「全选是」复选框功能
问题根因
- 你写的
if (a.length = 1)是赋值操作,不是等值判断,逻辑本身就有问题,应该用===做严格判断 - 你尝试修改的代码里用
.P3C1作为类选择器完全无效:你顶部的遍历逻辑只会给复选框加P2、P3、P4这类前缀类名,不存在P3C1这类带后缀的类 - ASP.NET服务端控件渲染到浏览器后ID会自动拼接父容器前缀,直接用完整ID选择也不可靠
修复方案
不需要修改顶部的遍历代码,直接替换你的.P2change事件代码即可,完全匹配你的需求:
$(".P2").change(function () { // 先判断全选是复选框的选中状态 const isChecked = $(this).is(":checked"); // 选择所有P3~P11类的复选框,过滤出ID以C1结尾的「是」选项 $(".P3, .P4, .P5, .P6, .P7, .P8, .P9, .P10, .P11") .filter("[id$='C1']") .prop("checked", isChecked); // 如果需要选中全选是的同时取消所有「否」选项的选中,加下面这行即可 // $(".P3, .P4, .P5, .P6, .P7, .P8, .P9, .P10, .P11").filter("[id$='C2']").prop("checked", false); });
内容的提问来源于stack exchange,提问作者Andrew King
相关产品推荐
相关产品推荐

