jQuery.each似乎不起作用

时间:2013-09-16 13:44:02

标签: jquery

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

3 个答案:

答案 0 :(得分:2)

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

我在jsFiddle中重新创建了代码的

Here is a simplified example

问题出在您的模板或其他地方。另外,在最佳实践方面考虑其他答案中给出的建议,主要是使用适当的选择器而不是执行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
}
});