将数据列表添加到循环内的对象

Adding a list of data to object inside loop

我一直在尝试将值列表添加到 object/associative 数组中,这样我就可以从 multiselect 插件的输入中获取值列表。我想将输入的名称添加为对象键。

问题:似乎没有创建列表,只是更新循环中的最后一个输入值...我在这里做错了什么?

var selectObj = {}; 

$('input').each(function(inputKey)
{
    alert($(this).val());   //all input values shown
    selectObj[$(this).attr('name')] = $(this).val(); 
 });

alert(JSON.stringify(selectObj));    //last input value shown

想要的结果:

selectObj={"listName1":"12,3,31,4"}

selectObj={"listName1":"12,3,31,4"},{"listName2":"1,32,43,5"}

根据您对所需结果的编辑,您可以执行此操作

var selectObj = {}; 
var inputValues = [];
$('input').each(function(inputKey){
  attrName = $(this).attr('name');
  inputValues.push(value);

});
 selectObj[attrName] = inputValues .toString();

感谢 gillesc 帮助我解决了这个问题,它现在成功地检查了所有已经被各种 multi select 检查或 selected 的输入] 插件和输出到 inputValues 对象:

$('input').each(function()
{
    if($(this).closest('li').hasClass("checked") || $(this).closest('li').hasClass("active"))
    {                 
        var selectKey = $(this).attr('name');                  
        if (!inputValues[selectKey]) 
        { 
            inputValues[selectKey] = [];
        } 
        inputValues[selectKey].push($(this).val());
    }
}