Javascript JQuery";onchange";基于标签文本的组中多个复选框中仅一个复选框上的事件

Javascript JQuery";onchange";基于标签文本的组中多个复选框中仅一个复选框上的事件,javascript,jquery,checkbox,jquery-selectors,Javascript,Jquery,Checkbox,Jquery Selectors,我有一组复选框- <input id="check_1" name="check[1]" type="checkbox" value="1"/> <label for="check_1">One</label>&nbsp; <input id="check_2" name="check[2]" type="checkbox" value="1"/> <label for="check_2">Two</label>&

我有一组复选框-

<input id="check_1" name="check[1]" type="checkbox" value="1"/>
<label for="check_1">One</label>&nbsp;

<input id="check_2" name="check[2]" type="checkbox" value="1"/>
<label for="check_2">Two</label>&nbsp;

<input id="check_3" name="check[3]" type="checkbox" value="1"/>
<label for="check_3">Three</label>

由于我没有修改html的权限,如何执行此操作?

看起来您唯一的标准是
标签的文本,因此您可以基于该标签将输入作为目标,如:

$('label:contains(“一”)).prev('input:checkbox').change(function(){
console.log('One changed');
});

一个
两个

三个
您可以使用如下选择器('input[type=“checkbox”]:has(+label:contains(“One”))
,标签文本如下所示

$('input[type=“checkbox”]:has(+label:contains(“一”)))。在('click',function(){
警报(“选中一个复选框”);
});

一个
两个

三个
使用
这个
关键字try
$('input[type=“checkbox”])
$('input[id^='check'])。change()
@philantrovert在这种情况下,我将如何检查下一个标签是否为正在检查的标签?@jitendrapurohit我们
在函数内部。我不想在两个和三个选项检查上触发警报事件。您可以根据标签文本执行此操作,请检查我的更新。正在工作,谢谢+1。但这并不能确保单击输入是一个复选框:(这很好,有没有更干净的方法?如果我找不到任何+1,我会接受这一点。如果你想通过标签文本找到复选框,那么这是选择器的更干净
jquery
方法。如果你需要通过任何其他逻辑进行查找,请让我知道,我将更新answer@jitendrapurohit就性能而言,这是好的,因为这是使用s使用单个选择器,而不是使用多个选择器操作
dom
$("#check_1").change(function() {
  alert('Checkbox One is clicked');
});