我有这段代码:
$(".categoty-add").each(function(i) {
categories[i][0] = $(this).val();
});
在输出中我得到了
TypeError: can't convert undefined to object
categories[i][0] = $(this).val();
这是我的阵列:
var categories = new Array(2);
for (i = 0; i < categories . length; ++ i)
categories [i] = new Array (2);
怎么了?
答案 0 :(得分:0)
必须有两个带有category-add
类的文本框。它们是两个以上然后你迭代器我将被赋予一个值&gt; = 2然后你的陈述变成
categories[2][0] = $(this).val();
超出了数组的范围。
答案 1 :(得分:0)
要动态创建数组(运行第一次代码),稍后更新它,您可以执行以下操作:
/* create empty array, syntax is shortcut for new Array() and just as efficient*/
var categories=[];
$(".categoty-add").each(function(i) {
if( categories[i] ){ /* if doesn't exist will be undefined and trigger "else"*/
/* sub array exists, just update it*/
categories[i][0] = $(this).val();
}else{
/* create new sub array and give value to first position */
categories[i] =[ $(this).val()];
}
});