我需要一个jQuery来获取所有已检查的复选框,其ID以PR,PR_KD或PR_KDA结尾.我试过这个没有运气:
jQuery("#" + panelInfo[0] + "_row_" + panelInfo[1] + " input:checked").find(":[id$=_chkPR],:[id$=_chkPR_KD],:[id$=_chkPR_KDA])");
还有这个:
jQuery("#" + panelInfo[0] + "_row_" + panelInfo[1] + " input:checked:[id$=_chkPR,id$=_chkPR_KD,id$=_chkPR_KDA]")
我没有正确使用“或”.谁能帮我?
提前致谢!
亚历杭德罗.
解决方法
你的第一个示例查询是与正确语法最接近的查询,但是你使用$(‘… input:checked’).find()将查找这些复选框的子项(其中当然不存在) ).
所以你需要移动输入:检查部分,或者更好的是:复选框:选中,以排除任何单选按钮到你的.find中,这样你就可以在所需的容器内搜索,而不是在复选框列表中搜索:
jQuery("#" + panelInfo[0] + "_row_" + panelInfo[1]) .find(":checkBox:checked[id$=_chkPR],:checkBox:checked[id$=_chkPR_KD],:checkBox:checked[id$=_chkPR_KDA])");
另一种表达方式可能是:
jQuery("#" + panelInfo[0] + "_row_" + panelInfo[1]) .find('[id$=_chkPR],[id$=_chkPR_KD],[$=id_chkPR_KDA]') .filter(function() { return $(this).is(':checkBox:checked'); });
在上面的代码中,您将在面板中找到具有匹配ID的所有元素,并从匹配集中筛选出已选中复选框的元素.
如果你提供一个上下文,你也可以完全不需要使用.find:
jQuery(":checkBox:checked[id$=_chkPR],:checkBox:checked[id$=_chkPR_KDA])",document.getElementById(panelInfo[0] + "_row_" + panelInfo[1]));