我需要将2个数组的每个元素推入一个对象, 输入的数量和输入的值。
我这是我想要的输出
[{"span" : 1},{"value": 1}]
然而,我的对象一直空着。我不确定我在这里缺少什么。
$('#group').on('click', function() {
var addFieldsArray = $('.add').map(function() {
return $(this).val();
}).get();
var addSpanArray = $('[name="span[]"]').map(function(){
return $(this).text();
}).get();
var obj = {};
obj.final = [];
for(var i=0; i< addSpanArray.length; i++){
obj.final.push[{"span": addSpanArray[i]}, {"value": addFieldsArray[i]}]
}
console.log(obj.final);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="add[]" class="add" id="one"><span name="span[]" id="s-one">1</span>
<input type="text" name="add[]" class="add" id="two"><span name="span[]" id="s-two">2</span>
<input type="text" name="add[]" class="add" id="three"><span name="span[]" id="s-three">3</span>
<input type="text" name="add[]" class="add" id="four"><span name="span[]" id="s-four">4</span>
<br/>
<input type="text" name="add[]" class="add" id="five"><span name="span[]" id="s-five">5</span>
<input type="text" name="add[]" class="add" id="six"><span name="span[]" id="s-six">6</span>
<input type="text" name="add[]" class="add" id="seven"><span name="span[]" id="s-seven">7</span>
<input type="text" name="add[]" class="add" id="eight"><span name="span[]" id="s-eight">8</span>
<br/>
<button id="group">Group</button>
答案 0 :(得分:0)
Array.prototype.push
是一个函数,所以使用括号而不是方括号来调用它:
obj.final.push[
// ^
应该是:
obj.final.push({"span": addSpanArray[i]}, {"value": addFieldsArray[i]});
答案 1 :(得分:0)
为什么不使用.each()
进行迭代?
$('#group').on('click', function() {
var obj = {};
obj.final = [];
$(".add").each(function() {
obj.final.push({
span: $(this).next("span").html(),
value: $(this).val()
});
});
console.log(obj.final);
});