0

私はこのコードを持っています:

$(".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);

どうしたの?

4

2 に答える 2

0

class には2つのテキストボックスが必要category-addです。それらが2つ以上の場合、イテレータiには値> = 2が割り当てられ、ステートメントは次のようになります

categories[2][0] = $(this).val();

これは配列の範囲外です。

于 2012-11-03T12:22:08.140 に答える
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()];
    }
});

デモ: http://jsfiddle.net/FFQ2s/

于 2012-11-03T15:57:33.470 に答える