当我尝试将某些元素推送到数组并显示随机元素时,浏览器返回该数组未定义。问题出在哪里?
var dir = "./images/radovi/";
var ext = ".png";
var slike = [];
$.ajax({
url: dir,
success: function (data) {
$(data).find("a:contains(" + ext + ")").each(function () {
var ime_slike = this.href.replace(window.location.host, "").replace("http:///", "");
slike.push(dir + ime_slike + ext);
});
}
});
$('<img src="' + slike[Math.floor(Math.random() * slike.length)] + '">').appendTo('#radovi');
最佳答案
AJAX 是异步的。填充数组的代码在使用该数组的代码之后被调用。将创建图像的代码移至成功处理程序中:
var dir = "./images/radovi/";
var ext = ".png";
var slike = [];
$.ajax({
url: dir,
success: function (data) {
$(data).find("a:contains(" + ext + ")").each(function () {
var ime_slike = this.href.replace(window.location.host, "").replace("http:///", "");
slike.push(dir + ime_slike + ext);
});
if (slike.length) {
$('<img src="' + slike[Math.floor(Math.random() * slike.length)] + '">').appendTo('#radovi');
}
}
});
关于javascript - 如何从 ajax 将元素推送到数组 - jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25923423/