2011-09-18 58 views
0

我有一个脚本,添加了几个这些形式。我如何选择另一个包含的对象。 jQuery

var html = '<div class="equipment_row">' + 
'<img src="'+base_url+'verkstad/icons/icon-'+type+'.png"/>' + 
'<input class="eq_amount" type="text" value="'+amount+'" />' + 
'<input class="eq_artnr" type="text" value="'+artnr+'" />' + 
'<input class="eq_text" type="text" value="'+text+'" />' + 
'<input class="eq_price" type="text" value="'+price+'" />' + 
'<img src="'+base_url+'verkstad/icons/eq_delete.png" class="eq_delete_img"/>' + 
</div>'; 
$('#equipment_container').append(html); 

然后,当用户点击“保存”我希望它收集在一个数组

var eq_array = Array(); 
var obj; 
$('.equipment_row').each(function(){ 
obj = new Object(); 
obj.amount = ??? 
obj.artnr = ??? 
obj.text = ??? 
obj.price = ??? 
eq_array.push(obj); 
}); 
var dataString = $.toJSON(eq_array); 
alert(dataString); 

我怎样才能访问“equipment_row”含有输入字段所有这些值?

回答

1
$('.equipment_row').each(function(i, e){ 
obj = new Object(); 
obj.amount = $('.eq_amount', e).val(); 

等..

+0

这正是我一直在寻找。谢谢。 –

2

这将是一个更容易将其包装都在一个表单元素,并做$(form).serialize();

0

使用:

obj.amount = $(this).find('.eq_amount'); 

之类的东西。

1

我很惊讶你的输入没有名字,但只有一个类。

var eq_array = new Array(); // = []; 
$('.equipment_row').each(function() { 
    var obj = new Object(); // = {}; 
    $('input, select', this).each(function() { 
     obj[$(this).attr('class')] = this.value; 
    }); 
    eq_array.push(obj); 
}); 

注意到这是你的阵列看起来像

[ { eq_amout: 2113, 
    eq_artnr: ... 
    }, 
    ... 
] 
相关问题