Ваш первый пример запроса наиболее близок к правильному синтаксису, но вы используете $('... input:checked').find()
, который будет искать потомков этих флажков (которых, конечно, не будет).
Таким образом, вам нужно переместить часть input:checked
или, что еще лучше, :checkbox:checked
, чтобы исключить любые радиокнопки, в ваш .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'); });
В приведенном выше коде вы находите все элементы на панели с совпадающим идентификатором и отфильтровывает элементы из соответствующего набора, которые отмечены флажками.
Вы также можете избавиться от необходимости вообще использовать .find
, если вместо этого укажите context :
jQuery(":checkbox:checked[id$=_chkPR], :checkbox:checked[id$=_chkPR_KD], :checkbox:checked[id$=_chkPR_KDA])",
document.getElementById(panelInfo[0] + "_row_" + panelInfo[1]));