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,构建 Array 的更好方法如下:

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 回答