2011-09-18 77 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: ... 
    }, 
    ... 
] 
相關問題