将数据列表添加到循环内的对象
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
想要的结果:
- (1 多select):
selectObj={"listName1":"12,3,31,4"}
- (2 多select):
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());
}
}
我一直在尝试将值列表添加到 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
想要的结果:
- (1 多select):
selectObj={"listName1":"12,3,31,4"}
- (2 多select):
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());
}
}