我是stackoverflow和javascript(尤其是jquery和ajax)的新手。我一直试图解决这个问题超过一天仍然无法解决它。所以我试图从文件夹中获取一个图像名称列表:
folder = 'image/';
function imageCollection(theImageList) {
$(document).ready(function () {
$.ajax({
url: folder,
success: function (data) {
$(data).find("a").attr("href", function (i, val) {
if (val.match(/\.(jpe?g|png|gif)$/)) {
$("#comparison").append("<img src='" + folder + val + "'>");
theImageList.push(folder+val);
}
});
}
})
})
}
imageCollection(theImageList)
var imgLength = theImageList.length; // returns 0 while if I type theImageList.length directly in the console it shows 54
我设置了ImageList全局变量。非常奇怪的是,当我在控制台中键入theImageList时,它显示长度为54,我可以毫无问题地访问每个文件名。但是,当我设置var imgLength = theImageList.length时 (在我读取文件的功能之后)它给了我0,当我试图访问元素时,比如theImageList [0],它返回undefined。同样,我的图像显示成功地添加到我的比较div中,但是当我尝试通过函数外的$('img')访问它们时,再次失败。我也尝试在我的函数中返回theImageList但又失败了。
所以在这一点上我真的很困惑我的代码发生了什么。它显示出工作的迹象,但仍然没有给我我一直在寻找的东西。我不是在这里问什么是正确的问题。欢迎任何建议!