Javascript 阵列及;JSON:Jquery$.each()仅获取最后一个循环
这是我需要做的 我需要创建一个对象数组,如下面的格式。我获取输入框的名称和值,然后放入一个json,然后将其放入一个数组,然后将生成的数组放入另一个数组Javascript 阵列及;JSON:Jquery$.each()仅获取最后一个循环,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,这是我需要做的 我需要创建一个对象数组,如下面的格式。我获取输入框的名称和值,然后放入一个json,然后将其放入一个数组,然后将生成的数组放入另一个数组 [ [ {"key1":"value1","key2":"value2"}, {"key1":"value3","key2":"value4"}, ], [ {"key1":"value1","key2":"value2"}, {"key1":"value1","key2
[
[
{"key1":"value1","key2":"value2"},
{"key1":"value3","key2":"value4"},
],
[
{"key1":"value1","key2":"value2"},
{"key1":"value1","key2":"value2"},
]
]`
下面是我的代码
$scope.saveImages = function(){
var arrayOfArrays =[];
var arrayOfPhotos = [];
angular.element('.photo-group').each(function(){
var object = {};
$(this).find('.photo').each(function(){
var key = $(this).attr('name');
var value = $(this).val();
object[key] = value;
});
arrayOfPhotos.push(object)
arrayOfArrays.push(arrayOfPhotos)
console.log(arrayOfArrays)
});
}
这是我的标记
<div class="photo-group">
<div class="photo-group-body">
<div class="initial-photo">
<div class="row no-padding new-photo">
<div class="col no-padding">
<div class="form-group no-right-padding">
<label class="label-control" class="label-control">Label</label>
<input type="text" name="photo_label" class="form-control photo">
<input type="text" name="image_data" class="form-control photo photo_data">
</div>
</div>
</div>
</div>
<div class="initial-photo">
<div class="row no-padding new-photo">
<div class="col no-padding">
<div class="form-group no-right-padding">
<label class="label-control" class="label-control">Label</label>
<input type="text" name="photo_label" class="form-control photo">
<input type="text" name="image_data" class="form-control photo photo_data">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="photo-group">
<div class="photo-group-body">
<div class="initial-photo">
<div class="row no-padding new-photo">
<div class="col no-padding">
<div class="form-group no-right-padding">
<label class="label-control" class="label-control">Label</label>
<input type="text" name="photo_label" class="form-control photo">
<input type="text" name="image_data" class="form-control photo photo_data">
</div>
</div>
</div>
</div>
</div>
</div>
但是,我得到的只是每个数组中的最后一个对象
[
[
{"photo_label":"value3", "image_data":"value4"},
],
[
{"photo_label":"value4", "image_data":"value5"},
]
]`
在foreach内部创建推送对象
angular.element('.photo-group').each(function(){
$(this).find('.photo').each(function(){
var object = {};
var key = $(this).attr('name');
var value = $(this).val();
object[key] = value;
arrayOfPhotos.push(object);
});
arrayOfArrays.push(arrayOfPhotos);
console.log(arrayOfArrays);
});
因此,经过数小时的试错测试和跟踪代码流。。我能得到我想要的 这就是我所做的
$scope.saveImages = function(){
var arrayOfArrays =[];
angular.element('.photo-group').each(function(){
var arrayOfPhotos = [];
$(this).find('.initial-photo').each(function(){
var object = {};
$(this).find('.photo').each(function(){
var key = $(this).attr('name');
var value = $(this).val();
object[key] = value;
});
arrayOfPhotos.push(object)
});
arrayOfArrays.push(arrayOfPhotos);
});
}
我添加了另一个循环来深入到子元素中,并放置
var arrayOfPhotos=[]
在循环的第一个实例中为每个循环放入内部?这个var arrayOfArrays=[];var arrayOfPhotos=[]代码>如果在循环中使用arrayOfPhotos.push(object)
会怎么样?我无法运行代码,因此,请尝试。
$scope.saveImages = function(){
var arrayOfArrays =[];
angular.element('.photo-group').each(function(){
var arrayOfPhotos = [];
$(this).find('.initial-photo').each(function(){
var object = {};
$(this).find('.photo').each(function(){
var key = $(this).attr('name');
var value = $(this).val();
object[key] = value;
});
arrayOfPhotos.push(object)
});
arrayOfArrays.push(arrayOfPhotos);
});
}