1

以下の JavaScript を実行すると、input_array[input_array.length] = id;コメントアウトされていないと失敗します。誰がこれを引き起こしているのかを見ることができますか?

function cat_images_low_lag () {
    var input_array = new array ();

    cat_images = $(".category-description").next().find("img");
    cat_images.each(function () { 
        url = $(this).parent().attr("href");
        id = url.split("id=");
        id = id[1];

        input_array[input_array.length] = id;
    });
    alert ("trst");
    alert(input_array.join("\n"));
}   

乾杯!

4

3 に答える 3

3

まず、次を置き換えます。

var input_array = new array ();

と:

var input_array = new Array();

そして、これを使用して挿入します:

input_array.push(id);

または直接追加:

input_array[input_array.length] = id;

配列を初期化する他の方法:

var input_array = [];
于 2012-11-02T16:44:37.867 に答える
1

他の人は大文字化の問題を指摘しましたが、jQuery を使用しているため、配列を構築するより良い方法は次のようになります。

function cat_images_low_lag () {
    var input_array = $(".category-description + * img").map(function () { 
        return this.parentNode.href.split("id=")[1];
    }).toArray();

    alert ("trst");
    alert(input_array.join("\n"));
}
于 2012-11-02T17:01:37.540 に答える
0

配列の初期化が正しくありません

var input_array = new array ();

省略形を使用する必要があります

var input_array = [];

また

var input_array = new Array();

さらに、 cat_images がグローバルスコープの変数になるのを避けるために、このようにローカルにスコープすることを検討することをお勧めします

var cat_images = $(".category-description").next().find("img");
于 2012-11-02T16:45:02.017 に答える