向对象inisde循环添加数据列表

时间:2015-06-14 10:31:57

标签: jquery object each

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

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

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

期望的结果:

  • (1多选):
  

selectObj = { “listName1”: “12,3,31,4”}

  • (2多选):
  

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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

感谢 gillesc 帮助我解决这个问题,它现在成功检查了各种多选插件检查或选择的所有输入,并输出到 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());
    }
}