如何选择另一个中包含的对象。 jQuery的

时间:2011-09-18 12:49:02

标签: 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”中包含的输入字段?

4 个答案:

答案 0 :(得分:2)

将它全部包装在表单元素中并执行$(form).serialize();

会容易得多

答案 1 :(得分:1)

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

依旧......

答案 2 :(得分: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: ...
  },
  ...
]

答案 3 :(得分:0)

使用:

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

和那样的东西。