新版jQuery中如何通过onClick属性片段匹配复选框
解决jQuery筛选onClick属性包含特定字符串的复选框问题
针对你遇到的新版jQuery中无法用旧属性选择器匹配onClick属性包含特定片段的问题,用filter方法就能解决,具体实现如下:
// 筛选onClick属性包含"24242"的复选框 const targetCheckbox = $('input:checkbox').filter(function() { // 将onClick属性转为字符串,避免属性不存在时出现类型错误 const onClickAttr = String($(this).attr('onClick')); // 判断是否包含目标字符串片段 return onClickAttr.includes('24242'); }); // 示例:将筛选到的复选框设为选中状态 targetCheckbox.prop('checked', true);
关键点说明
filter方法会遍历所有匹配的复选框,仅保留回调返回true的元素- 把
attr('onClick')转为字符串是为了避免当元素没有onClick属性时,includes方法报错 - 如果HTML中onClick属性是全小写的
onclick,可以把代码里的attr('onClick')改成attr('onclick'),或者统一转成大小写再判断:return onClickAttr.toLowerCase().includes('24242'); - 设置复选框选中状态时,推荐用
prop('checked', true)而非attr,新版jQuery中prop更适合处理表单元素的状态属性
内容的提问来源于stack exchange,提问作者Allan Spielman
相关产品推荐
相关产品推荐

