我有一个相当离奇的情况,我试图使用each
迭代复选框。问题是它不想进入循环。
请告知为什么?
这是功能
function AddTheProduct() {
var txtTopicsGuids = "";
var checkedTopics = document.getElementsByName("chkRelatedTopics");
$(checkedTopics).each(function() {
if ($(this).is(":checked")) {
//action
}
});
和标记
{{each Items}}
<tr>
<td>
<input type='hidden' name='hidTopicsDomain' value='${DomainObjectKey}'/>
<input type='checkbox' name='chkRelatedTopics' value='${subject}'/>
</td>
</tr>
{{/each}}
答案 0 :(得分:2)
您的javascript代码应该有效。我认为问题与$.each
方法无关,而是与其他方法无关。
问题出在您的模板或其他地方。另外,在最佳实践方面考虑其他答案中给出的建议,主要是使用适当的选择器而不是执行getElementsByName
,然后将其包装在jQuery对象中。
答案 1 :(得分:1)
使用此:
function AddTheProduct() {
var txtTopicsGuids = "";
$("input[name=chkRelatedTopics]").each(function() {
if ($(this).is(":checked")) {
//action
}
});
}
答案 2 :(得分:1)
尝试:
$('input[name="chkRelatedTopics"]').each(function(){
if($(this).is(":checked")){
//do something here
}
});