Jquery 带有.push()方法的Javascript对象
我想使用Jquery 带有.push()方法的Javascript对象,jquery,json,javascript-objects,Jquery,Json,Javascript Objects,我想使用.push()方法创建javascript对象,并创建键值对。 我试过了,但不起作用 $("input[name^=ang_nama]").each(function() { arr_nama.push($(this).attr('id'):$(this).val()); }); 有什么解决办法吗?试试看 var obj = {}; obj[$(this).attr('id')] = $(this).val(); arr_nama.push(obj); 你似乎想要这个: var
.push()
方法创建javascript对象,并创建键值对。
我试过了,但不起作用
$("input[name^=ang_nama]").each(function() {
arr_nama.push($(this).attr('id'):$(this).val());
});
有什么解决办法吗?试试看
var obj = {};
obj[$(this).attr('id')] = $(this).val();
arr_nama.push(obj);
你似乎想要这个:
var arr_nama = [];
$("input[name^=ang_nama]").each(function() {
var obj = {};
obj[this.id] = $(this).val();
arr_nama.push(obj);
});
一些意见:
- 当您可以使用
this.id时,不要使用$(this.attr('id')
李>
- 您必须先初始化阵列,然后才能将其推入
- 不能直接使用动态属性名创建对象文字,必须先创建对象
另一个更清洁的解决方案是
var arr_nama = $("input[name^=ang_nama]").map(function() {
var obj = {};
obj[this.id] = $(this).val();
return obj;
}).get();
请注意,这将创建一个数组。如果您想要的是唯一的对象,请使用以下命令:
var arr_nama = {};
$("input[name^=ang_nama]").each(function() {
arr_nama[this.id] = $(this).val();
});
试试这个,边推边加上花括号
$("input[name^=ang_nama]").each(function() {
arr_nama.push( { $(this).attr('id'):$(this).val() } );
});
“当您可以使用this.id时,不要使用$(this.attr('id')@yes,但这只是因为它是一个输入
。对于某些元素,它的行为并不完全相同,这就是我不愿意更改它的原因。不,在JavaScript中不能这样做。