javascript - 未捕获的类型错误 : Cannot set property 'product_id' of undefined

标签 javascript jquery

我正在尝试在 jQuery 中创建一个多维数组。

var parent = $(this).parents(".product:first").find(".decking_var_content > li");
var product_id = $(this).parents('.product:first').find( '.variations_form').find('input[name=product_id]').val();
var myarray = [];

parent.each(function() {
    var var_id = $(this).find("span").attr("data-id");
    var quantity = $(this).find(".decking_var_child_ul").find("input[name=quantity]").val();

    if (var_id) {   
        myarray[var_id]['product_id'] = product_id; //error points here
        myarray[var_id]['quantity'] = quantity;
        myarray[var_id]['variation_id'] = var_id;
    } 
    else {
        myarray[product_id]['quantity'] = quantity;
    }
});

错误指向此 myarray[var_id]['product_id'] = Product_id; 。 我已提醒 product_id 所以我知道它有一个值。

如何解决这个问题?

最佳答案

您需要在设置其属性之前通过在其中创建一个对象来初始化myarray[var_id]:

if (var_id) {  
    myarray[var_id] = {}; 
    myarray[var_id]['product_id'] = product_id;
    myarray[var_id]['quantity'] = quantity;
    myarray[var_id]['variation_id'] = var_id;
} 
else {
    myarray[product_id] = {};
    myarray[product_id]['quantity'] = quantity;
}

请注意,您可以使此代码更加简洁,如下所示:

if (var_id) {  
    myarray[var_id] = {
        'product_id': product_id,
        'quantity': quantity,
        'variation_id': var_id
    }; 
} 
else {
    myarray[product_id] = {
        'quantity': quantity
    };
}

关于javascript - 未捕获的类型错误 : Cannot set property 'product_id' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30662643/

相关文章:

javascript - Meteor.js 和 Collection2 : Update Method that Inserts New Object in subschema

javascript - For循环JQuery输出相同的ID 4次

javascript - 将 for 循环和 while 循环转换为 do...while 循环 JavaScript

jquery - 如何使用 webpack 在 Node.js 应用程序中包含 jquery?

javascript - WebRTC:如何计算RTC Peer Connection的用户带宽/网络延迟

javascript - 是否有支持 Chrome 扩展程序的 Chromeless Google Chrome?

javascript - Jquery 日期比较

javascript - Jquery 在悬停时显示文本 - Looped Item

javascript - 横幅 javascript 变得更快

javascript - JSON 和 jQuery 实时搜索