4

我有一个相当奇怪的情况,我试图使用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}}
4

3 回答 3

2

您的 javascript 代码应该可以工作。我认为问题与方法无关,$.each而与其他问题有关。

这是我在 jsFiddle 中重新创建的代码的简化示例。

问题出在您的模板或其他地方。另外,考虑到其他答案中给出的最佳实践建议,主要使用适当的选择器,而不是这样做getElementsByName,然后将其包装在 jQuery 对象中。

于 2013-09-16T14:00:59.557 回答
1

用这个:

function AddTheProduct() {
   var txtTopicsGuids = "";
   $("input[name=chkRelatedTopics]").each(function() {
       if ($(this).is(":checked")) {
          //action
       }

   });
}
于 2013-09-16T13:48:23.973 回答
1

尝试:

$('input[name="chkRelatedTopics"]').each(function(){
if($(this).is(":checked")){
//do something here
}
});
于 2013-09-16T13:48:37.983 回答