无法将项目推送到空数组中

时间:2018-01-30 16:33:06

标签: javascript jquery arrays

我有这个功能,当我点击一个按钮时,我循环一些div并获得该div的id以及一些复选框输入id' s如果它们被标记。 为了存储这个值,我有一个字典,可以存储这样的项目:

{
   1: [4,5],
   2: [2,3]
}

键代表每个div的ID,值是点击的复选框项ID。

完整代码:

$(document).on('click', '.trimite-rasp', function(){
    var formData = {}
    $.each($('.single-question'), function(){
        var listIds = [];
        var qId = $(this).attr('qid');
        console.log(qId);
        $.each($('.form-check-input'), function(){
            if($(this).is(':checked')){
                var thisId = ($(this).attr('aid'));
                $(listIds).push(thisId);
            }
        });

        formData[qId] = listIds;
    });
    console.log(formData);

});

这里唯一的问题是listIds数组总是为空。我无法将值推送到该数组,并且我确定复选框ID是正确的,因为我控制它。记录它并且它已正确使用。

2 个答案:

答案 0 :(得分:3)

这是因为您将数组用作jQuery选择器

使用

var thisId = $(this).attr('aid'); 
listIds.push(thisId);

而不是

 $(listIds).push(thisId);

答案 1 :(得分:0)

试试这个

listIds.push(thisId);