2017-06-17 22 views
0

この関数で問題が発生しています。オブジェクトを配列にプッシュするときは問題ありませんが、格納されたオブジェクトを取得するときは、すべてのオブジェクトに同じ値があります。オブジェクトを配列にプッシュした後、配列内のすべてのオブジェクトの値が同じです

function saveDetails() { 
    var details = []; 
    var productDetails = {}; 
    var id = $('#ddlDeliveryBoy option:selected').val(); 
    var count = $('#tbCustomer tbody tr').length; 
    for (var index = 0; index < count; index++) { 
    var tr = $('#tbCustomer tbody tr')[index]; 
    var countTD = $(tr).children('td').length - 4; 
    for (var j = 3; j < (countTD + 4); j++) { 
     var td = $(tr).children('td')[j]; 
     var txt = $(td).find('input[type="text"]'); 
     if ($.isNumeric(txt.val())) { 
     productDetails.CustomerID = $(tr).data('id'); 
     productDetails.ProductID = $(td).data('id'); 
     productDetails.Quantity = parseFloat(txt.val()).toFixed(2); 
     details.push(productDetails); 
     } 
    } 
    } 
    console.log(details); 
} 
+0

'$( '#tbCustomerのTBODYのTR')。EQ(インデックス)' EQ() ' – prasanth

答えて

2

あなたはループの場合の内側productDetails初期化を移動する必要があります。 ここにコードがあります。

function saveDetails() { 
    var details = []; 
    var id = $('#ddlDeliveryBoy option:selected').val(); 
    var count = $('#tbCustomer tbody tr').length; 
    for (var index = 0; index < count; index++) { 
    var tr = $('#tbCustomer tbody tr')[index]; 
    var countTD = $(tr).children('td').length - 4; 
    for (var j = 3; j < (countTD + 4); j++) { 
     var td = $(tr).children('td')[j]; 
     var txt = $(td).find('input[type="text"]'); 
     if ($.isNumeric(txt.val())) { 
     let productDetails = {}; 
     productDetails.CustomerID = $(tr).data('id'); 
     productDetails.ProductID = $(td).data('id'); 
     productDetails.Quantity = parseFloat(txt.val()).toFixed(2); 
     details.push(productDetails); 
     } 
    } 
    } 
    console.log(details); 
} 
+0

おかげ#Raj'としてみてください.......... –

関連する問題