Javascript 根据复选框的文本获取其状态

Javascript 根据复选框的文本获取其状态,javascript,jquery,Javascript,Jquery,表单的复选框是使用以下html以编程方式创建的: <div class="checkbox"><label for="household_assistances_10"><input id="household_assistances_10" name="household[assistances][]" value="10" type="checkbox">Other</label></div> 假设id是唯一的,但其数字(例如10

表单的复选框是使用以下html以编程方式创建的:

<div class="checkbox"><label for="household_assistances_10"><input id="household_assistances_10" name="household[assistances][]" value="10" type="checkbox">Other</label></div>
假设id是唯一的,但其数字(例如10)无法预测,如何确定是否选中该框?我尝试过多种选择器,但尚未成功

编辑:


显然,我不清楚是否需要遵循显示为Other的复选框的状态。

我处理此问题的方法是使用更改事件侦听器来检查id以“House_Assistance”开头并已选中的任何复选框。要执行此操作,您需要使用“以开头”选择器:

“[id^=家庭助理]”

这将查找Id以家庭助理开始的所有控件。然后,您可以仅使用选中的复选框进一步修改该选择器:

“[id^=家庭助理]:复选框:选中”

这将返回作为复选框的所有控件,这些控件已选中,并且id以“House_Assistance”开头

以下是此实现的工作示例:

$document.on'change',“[id^=家庭辅助]:复选框:选中”,函数{ console.logthis.id; console.logthis.name }; 另外
如果您对VanillaJS解决方案感兴趣,您可以使用。 //在本例中,将click事件附加到button元素 document.getElementById'button'。addEventListener'click',functionevent{ //获取所有复选框 const checkbox=document.queryselectoral'input[type=checkbox]; /考虑使用MAP代替FACH //遍历复选框 checkbox.forEachcheckbox=>{ //对每个复选框执行一些操作 const isChecked=checkbox.checked; const id=checkbox.id; log`Checkbox${id}${isChecked''is':'is not'}checked`; }; }; 另外 另外 另外
复选框是否始终位于DOM树中的同一位置

如果是这样,您可以使用CSS层次结构和伪选择器来检索第n个元素:

$("#myform div:nth(n) input")[0].checked

document.getElementByIdHousehouse\u assistances\u 10.checked?jQuery:$'[type=checkbox]:checked'将列出所有选中的复选框。。。。我非常感谢大家的反应。如果文本是事先已知的唯一唯一项,则所有这些似乎都不能确定标记为“其他”的复选框的状态。例如,我知道如何根据id最左边的字符进行选择,但在遍历返回的对象时,如何查找其他字符并选中?根据这些新信息,我将编辑我的答案,并说明如何处理。我的最终解决方案不同,但我接受了您的答案。我的是$document.on'change','id^=househouse_assistences',函数{if$.trim$this.parent.text==='Other'&&&&$this.is':选中“{alert'DING!”;};除非应用程序最终会做一些事情,而不是敲钟!这也行。在大多数情况下,这并不重要,但考虑哪种方法使用更多内存总是一个好主意。事实证明,你的方法也比我的更有用。你的评论也让我学会了如何发现内存使用情况,这也是很有用的。谢谢