提问人:Allan Spielman 提问时间:6/15/2023 最后编辑:Allan Spielman 更新时间:6/16/2023 访问量:33
JQUERY:通过匹配 OnClick 属性中的字符串部分来查找 jQuery SELECTOR 中的复选框
JQUERY: find checkboxes in a jQuery SELECTOR by matching on part of a string that is in the OnClick Attribute
问:
我们有一个 JQUERY 挑战,因为我们需要通过匹配 OnClick 属性中的字符串的一部分来查找 JQuery SELECTOR 中的复选框。如果我们匹配 NAME 或 ID,这将非常容易,但复选框是由创建 HTML 的应用程序创建的,如下所示。
<input type="checkbox" name="alternate" value="" onClick="moreStudyDetFunctions.setValue(moreStudyDetFunctions.formObj,24242,1)">
在旧版本的 Jquery 中,我们能够找到这个 jQuery(“输入:复选框[onclick*=,24242]”).attr(“选中”)
JQuery 的当前版本似乎不支持这一点,需要我更改代码。
我可以按如下方式获取 OnClick 属性: $('输入:复选框').attr('onClick')
但是我不知道如何将复选框选择器限制为仅匹配 onClick 属性中的“24242”
:contains 命令似乎不适用于复选框。 这不起作用 $('input:checkbox').contains('24242')
也许$('input:checkbox').filter ?
答:
0赞
Simone Rossaini
6/15/2023
#1
您可以使用 ,如果不存在,它将打印第一次出现的 -1 else 索引indexOf
console.log($('input:checkbox').attr('onClick').indexOf('24242'))
//if -1 not found else found
//example
if ($('input:checkbox').attr('onClick').indexOf('24242') > -1) {
console.log(`found at index ${$('input:checkbox').attr('onClick').indexOf('24242')}`);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" name="alternate" value="" onClick="moreStudyDetFunctions.setValue(moreStudyDetFunctions.formObj,24242,1)">
参考:
评论
0赞
Allan Spielman
6/15/2023
Simone,非常感谢!这是正确的,但我实际上是在尝试将此结果放在选择器中,然后对它执行某些操作,例如检查其检查属性或设置它。你确实让我走上了正确的轨道!这是我的解决方案,导致一个扇区: $('input:checkbox').filter(function() { return $('input:checkbox').attr('onClick').indexOf('24242') > 0 })
0赞
Allan Spielman
6/15/2023
#2
是的,我需要使用 .filter,但由于它是一个字符串搜索,因此需要一个异常函数。
$(document).ready(function() {
alert($('input:checkbox').filter(function() {
return $('input:checkbox').attr('onClick').indexOf('24242') > 0
}).length);
});
<input type="checkbox" name="alternate" value="" checked onClick="moreStudyDetFunctions.setValue(moreStudyDetFunctions.formObj,24242,1)">
评论
jQuery("input:checkbox[onclick*=',24242']")