当我运行以下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"));
}
喝彩!
答案 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");