循环遍历并将每个表行td元素值存储为对象数组

新手开发

我有一个可以动态计算并创建新行的表。这是以下内容的摘要:

  <table>
  <tr class="purchase_schedule_table">
      <td><input type="text" name="purchase_place" class="purchase_place_info" style="width: 90%;" ></td>
      <td><input type="text" name="main_products_purch" style="width: 90%;" class="main_products_purch_info" ></td>
      <td><input type="number" name="frequency" style="width: 90%;" class="frequency" ></td>
      <td><input type="number" name="low" style="width: 90%;" class="product_low" ></td>
      <td><input type="number" name="high" style="width: 90%;" class="product_high" ></td>
      <td><input type="number" name="average" style="width: 90%;" class="product_average" disabled ></td>
      <td>
        <div class = "input-group" id="addrow">
          <input type="number" name="product_total" style="width: 90%;" class="product_total"  disabled>
          <span class = "input-group-addon" style="width:1%; background-color:#786bae;border-color:#786bae;">
            <a href="#">
              <span style="color:#FFFFFF;font-size:9px;line-height: 1.5;border-radius:0 !important;" class="glyphicon glyphicon-plus addrow" aria-hidden="true"></span>
            </a>
          </span>
        </div>
      </td>
    </tr>
  </table>

这是一个用于计算值的jquery代码片段:

//calculate purchase schedule monthly total
function calculatePurchaseScheduleMonthlyTotal(){
   var total_sum = 0;

  $('.product_total').each(function () {
     var value = $(this).val();
     total_sum = parseInt(total_sum) + parseInt(value);
  });

   $('.total_sum').val(total_sum);
};

  //calculate purchase schedule
 function calculatePurchaseSchedule(ObjRow) {
    var low = 0;
    var high = 0;
    var average = 0;
    var frequency = 0;
    var total = 0;

    var total_sum = 0;

    frequency = ($(ObjRow).find('.frequency').val() == "") ? 0 :      $(ObjRow).find('.frequency').val();

      high = ($(ObjRow).find('.product_high').val() == "") ? 0 : $(ObjRow).find('.product_high').val();

     low = ($(ObjRow).find('.product_low').val() == "") ? 0 : $(ObjRow).find('.product_low').val();

     average = (parseInt(high) + parseInt(low)) / 2;
     total = average * frequency;

     $(ObjRow).find('.product_total').val(total);
    $(ObjRow).find('.product_average').val(average);


    calculatePurchaseScheduleMonthlyTotal();
};

这也是用于触发计算的代码片段:

$(document).on('focusout','input[type=number]',function () {
       calculatePurchaseSchedule($(this).closest('tr'));
       saveData();
  });

这是用于动态添加表行的代码:

$('#addrow').click(function (e) {
   e.preventDefault();

  var purchase_schedule_row = '<tr class="purchase_schedule_table"><td>  <input type="text" name="purchase_place" class="purchase_place" style="width: 90%;"></td><td><input type="text" name="main_products_purch" style="width: 90%;" class="main_products_purch"></td><td><input type="number" name="frequency" style="width: 90%;" class="frequency"></td><td><input type="number" name="low" style="width: 90%;" class="product_low"></td> <td><input type="number" name="high" style="width: 90%;" class="product_high"></td> <td><input type="number" name="average" style="width: 90%;" class="product_average" disabled></td><td> <div class = "input-group" id="addrow">  <input type="number" name="total" style="width: 90%;" class="product_total" disabled><span class = "input-group-addon" style="width:1%; background-color:#ec6d65;border-color:#ec6d65;"><a href="#"> <span style="color:#FFFFFF;font-size:9px;line-height: 1.5;border-radius:0 !important;" class="glyphicon glyphicon-minus deleterow" aria-hidden="true"></span></a></span></div></td></tr>';

 $('#purchaseScheduleTable').append(purchase_schedule_row);
});

我想要做的是将每个表行td元素值存储为对象数组。我尝试在以下代码中这样做:

  var purchase_place;
  var main_products_purch;
  var frequency;
  var product_low;
  var product_high;
  var product_average;
  var product_total;
  var product_total_sum;
  var purchase_schedule_table = [];
  var purchase_schedule_data = {};

  var count = 1;
 $('.purchase_schedule_table').each(function(){
    $(this).find('.product_total').each(function () {
       product_total =  $(this).find('.product_total').val();
       console.log(product_total);
       purchase_schedule_data.product_total = product_total;
    });
    purchase_schedule_table.push(purchase_schedule_data);
 });
 console.log(purchase_schedule_table);

例如,最终结果应如下所示:

      [
         {purchase_place:  'purchase_place', main_products_purch : 'main_products_purch', frequency:'frequency', product_average: 'product_averager'}
        {purchase_place:  'purchase_place', main_products_purch : 'main_products_purch', frequency:'frequency', product_average: 'product_averager'}
      ]

我究竟做错了什么?提前致谢。

易卜拉欣汗

tr用类purchase_schedule_table依次遍历每个td对象,然后遍历每个对象,创建一个对象并将其推入数组,如下所示。

var arr = [];
$('.purchase_schedule_table').each(function () {
    var obj = {};
    $(this).find('td').each(function () {            
        var input = $(this).find('input')[0];
        obj[input.name] = input.value;
    });
    arr.push(obj);
})

console.log(arr)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

循环遍历对象数组,并按对象元素ID返回每个总计值的和

来自分类Dev

如何遍历字符串数组并将每个元素添加到对象数组

来自分类Dev

Javascript:遍历对象数组以查找键值对并将其呈现在表td中

来自分类Dev

循环遍历数组并将基于这些值的值分组为4个数组

来自分类Dev

递归遍历php数组并将对象元素转换为存储其类名的数组

来自分类Dev

循环遍历数组并将值存储在另一个数组中

来自分类Dev

循环遍历数组并将每个值添加到 Realm 数据库 Swift 3

来自分类Dev

循环遍历CSV文件并将行值存储在变量C#中

来自分类Dev

遍历对象数组,并将值替换为数组中的值

来自分类Dev

MS-Access:为表中的每个不同值循环遍历代码

来自分类Dev

循环遍历对象数组和格式值

来自分类Dev

在循环中为每个用户存储值

来自分类Dev

在html表中循环并获取每个tr的每个td的值

来自分类Dev

循环遍历 JSON 对象并将它们转换为数组

来自分类Dev

每个循环不遍历从本地存储读取的数组

来自分类Dev

如何拆分数据框中的列并将每个值存储为新行(在熊猫中)?

来自分类Dev

循环10天并将每个日期存储在数组中

来自分类Dev

如何遍历数组并将其值存储在Laravel中

来自分类Dev

循环遍历具有用户 ID 的 firebase 节点,以显示特定的子节点并将值存储在数组中

来自分类Dev

循环遍历多个数组并保持每个元素的计数

来自分类Dev

需要遍历数组中的单元格,并将每个单元格的值设置为其坐标的乘积

来自分类Dev

jQuery每个循环遍历具有多个对象的数组

来自分类Dev

循环遍历数组并返回Powershell中每个对象的结果

来自分类Dev

遍历对象并将键和值推入数组

来自分类Dev

如何遍历对象数组然后删除JavaScript中的每个元素

来自分类Dev

循环遍历NSArray时从每个对象中减去值?

来自分类Dev

爆炸到数组并将每个元素打印为列表项?

来自分类Dev

遍历对象数组->在新数组中存储属性的浮点值

来自分类Dev

For循环遍历每个子元素

Related 相关文章

  1. 1

    循环遍历对象数组,并按对象元素ID返回每个总计值的和

  2. 2

    如何遍历字符串数组并将每个元素添加到对象数组

  3. 3

    Javascript:遍历对象数组以查找键值对并将其呈现在表td中

  4. 4

    循环遍历数组并将基于这些值的值分组为4个数组

  5. 5

    递归遍历php数组并将对象元素转换为存储其类名的数组

  6. 6

    循环遍历数组并将值存储在另一个数组中

  7. 7

    循环遍历数组并将每个值添加到 Realm 数据库 Swift 3

  8. 8

    循环遍历CSV文件并将行值存储在变量C#中

  9. 9

    遍历对象数组,并将值替换为数组中的值

  10. 10

    MS-Access:为表中的每个不同值循环遍历代码

  11. 11

    循环遍历对象数组和格式值

  12. 12

    在循环中为每个用户存储值

  13. 13

    在html表中循环并获取每个tr的每个td的值

  14. 14

    循环遍历 JSON 对象并将它们转换为数组

  15. 15

    每个循环不遍历从本地存储读取的数组

  16. 16

    如何拆分数据框中的列并将每个值存储为新行(在熊猫中)?

  17. 17

    循环10天并将每个日期存储在数组中

  18. 18

    如何遍历数组并将其值存储在Laravel中

  19. 19

    循环遍历具有用户 ID 的 firebase 节点,以显示特定的子节点并将值存储在数组中

  20. 20

    循环遍历多个数组并保持每个元素的计数

  21. 21

    需要遍历数组中的单元格,并将每个单元格的值设置为其坐标的乘积

  22. 22

    jQuery每个循环遍历具有多个对象的数组

  23. 23

    循环遍历数组并返回Powershell中每个对象的结果

  24. 24

    遍历对象并将键和值推入数组

  25. 25

    如何遍历对象数组然后删除JavaScript中的每个元素

  26. 26

    循环遍历NSArray时从每个对象中减去值?

  27. 27

    爆炸到数组并将每个元素打印为列表项?

  28. 28

    遍历对象数组->在新数组中存储属性的浮点值

  29. 29

    For循环遍历每个子元素

热门标签

归档