jQuery获取class为checkbox-guest的选中复选框数量代码失效
代码失效原因
你使用的jQuery双参数选择器语法$(selector, context)的执行逻辑是:在context指定的元素的后代节点中,匹配符合selector规则的元素。
你当前写的$('input[type="checkbox"]:checked', '.checkbox-guest'),实际是在查找.checkbox-guest容器内部的选中复选框,但根据你给出的HTML结构,checkbox-guest类是直接加在<input>复选框元素自身上的,不存在「复选框是.checkbox-guest的后代」这种结构,因此永远匹配不到目标元素,返回的长度值始终无效。
正确写法
把类筛选条件和其他属性、状态筛选条件合并到同一个选择器字符串中,直接匹配自身同时满足所有规则的元素即可:
// 存储带checkbox-guest类的已选中复选框总数量 const checkedGuestTotal = $('input[type="checkbox"].checkbox-guest:checked').length;
如果更偏向链式调用的写法,逻辑可读性更强,也可以用filter()方法实现,效果完全一致:
const checkedGuestTotal = $('.checkbox-guest').filter('input:checked').length;
内容的提问来源于stack exchange,提问作者OUED
相关产品推荐
相关产品推荐

