javascript - 迭代表的行

标签 javascript jquery

我正在迭代动态生成的 div,其中包含一个表。当我迭代行时,假设我有两行,我得到两个结果。但问题是两个结果都包含表最后一行的值。这是我的代码:

$(this)
  .children('.js-charge-data')
  .children('.js-charging-line-wrapper')
  .find('.js-chargeline-tbody')
  .children('tr')
  .each(function() {
    chargingLineJSON['chargingType'] = 'IoT';
    chargingLineJSON['chargeCategoryName'] = $(this).find('.js-charging-category').val().trim();
    chargingLineJSON['subCategoryName'] = $(this).find('.js-charging-sub-category').val().trim();
    chargingLineJSON['backEndProductName'] = $(this).find('.js-charging-sub-category').children(':selected').data('backend_product_name');
    chargingLineJSON['shipToAddressId'] = '123';
    chargingLineJSON['chargePerUnit'] = $(this).find('.js-unit-charge').val().trim();

    chargeLineListJSON['chargingLine'] = chargingLineJSON;
    chargingLineJSONArray.push(chargeLineListJSON);
  });

请告诉我我犯了什么错误?

最佳答案

您正在将相同的对象 chargingLineJSON 推送到数组,在 .each() block 中创建一个新对象

.each(function () {
    //Create a new object
    var chargingLineJSON = {};
    //Your code
    chargingLineJSONArray.push(chargeLineListJSON);
});

根据 @Rajesh评论

使用引用复制对象。因此,在第二次迭代中,当您为对象的属性设置值时,您将覆盖内存位置而不是locat变量中的值。因此,相同的值

关于javascript - 迭代表的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45953713/

相关文章:

javascript - 如果前面没有 's',则替换单词末尾的 's'

javascript - 获取外部内容(相同域)并将其插入到特殊的 div 中(无需替换)

javascript - 从同一类的异步方法调用类内的异步方法时的 Promise(待定)

javascript - 不使用 asp.net 按钮关闭 jQuery 弹出窗口

javascript - GraphQL 能否在解析器中选择性地解析给定查询结果的字段?

jquery - 记住 jQuery 中的触发器

javascript - PHP - 设置选项时启用按钮

php - Jquery 可排序连接列表 + PHP/MySQL

javascript - 将用户发布到其他集合时出现问题

javascript - 如何在 js 文件中使用脚本参数?