填充数组时javascript失败

时间:2012-11-02 16:43:07

标签: javascript arrays

当我运行以下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"));
}   

喝彩!

3 个答案:

答案 0 :(得分:3)

首先,替换:

var input_array = new array ();

使用:

var input_array = new Array();

并使用此插入:

input_array.push(id);

或直接添加:

input_array[input_array.length] = id;

初始化数组的其他方法:

var input_array = [];

答案 1 :(得分: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"));
}

答案 2 :(得分:0)

您对阵列的初始化不正确

var input_array = new array ();

你应该使用速记

var input_array = [];

var input_array = new Array();

此外,为避免cat_images成为全局范围内的变量,您可能需要考虑在本地区域范围内

var cat_images = $(".category-description").next().find("img");