我正在尝试在 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/