我想使用.push()
方法创建javascript对象并创建Key Value Pair
。
我试过了,但它不起作用。
$("input[name^=ang_nama]").each(function() {
arr_nama.push($(this).attr('id'):$(this).val());
});
任何解决方案?
答案 0 :(得分:7)
你似乎想要这个:
var arr_nama = [];
$("input[name^=ang_nama]").each(function() {
var obj = {};
obj[this.id] = $(this).val();
arr_nama.push(obj);
});
一些观察结果:
$(this).attr('id')
!this.id
另一个更清洁的解决方案是
var arr_nama = $("input[name^=ang_nama]").map(function() {
var obj = {};
obj[this.id] = $(this).val();
return obj;
}).get();
<强> Demonstration 强>
请注意,这会创建一个数组。如果您想要的是一个唯一的对象,请使用:
var arr_nama = {};
$("input[name^=ang_nama]").each(function() {
arr_nama[this.id] = $(this).val();
});
<强> Demonstration 强>
答案 1 :(得分:1)
尝试
var obj = {};
obj[$(this).attr('id')] = $(this).val();
arr_nama.push(obj);
答案 2 :(得分:0)
试试这个,在按
的同时添加花括号$("input[name^=ang_nama]").each(function() {
arr_nama.push( { $(this).attr('id'):$(this).val() } );
});