我使用jQuery的非数字索引输入:
<input name="attributes['index1']" class="text_inputs" />
<input name="attributes['index2']" class="text_inputs" />
<input name="attributes['index3']" class="text_inputs" />
和这个jquery代码:
var attrs = new Array();
$.map( $('input.text_inputs'), function(obj, idx) {
attrs['here_the_index_from_input'] = obj.value;
});
所以我想将每个索引从输入添加到attrs数组索引。 提前谢谢!
答案 0 :(得分:3)
你混淆了一堆不同的概念。
map
返回的数组,请改用each
。如果您已经拥有jQuery集合,则无需使用$.func
表单。只需使用.func
。
var attrs = {};
$('input.text_inputs').each(function()
{
var $this = $(this),
name = $this.prop('name'),
val = $this.val();
name = name.replace(/^attributes\['|'\]$/g, '');
attrs[name] = val;
});
我认为'here_the_index_from_input'
是'index1'
,例如,'index2'
,'index3'
和{{1}}。
答案 1 :(得分:0)
var attrs = [];
$.each($('input.text_inputs'), function(){
attrs[$(this).attr('nameOfIndexAttribute')] = $(this).val();
});
答案 2 :(得分:0)
你可以这样做(如果我正确理解了你想要的东西)
var attrs = {};
$.map( $('input.text_inputs'), function(obj, idx) {
attrs[obj.name] = obj.value;
});
attrs是一个关联数组,输入字段的名称为键,输入字段的值为值。
编辑 - 使用注释中正确陈述的对象,而不是数组