javascript - 如何从 ajax 将元素推送到数组 - jQuery

标签 javascript jquery arrays ajax push

当我尝试将某些元素推送到数组并显示随机元素时,浏览器返回该数组未定义。问题出在哪里?

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/

相关文章:

javascript - 标题 div 在水平滚动时跟随其他固定 div

python - 索引 0 超出了大小为 0 的轴 0 的范围

java - java中数组的转换

javascript - 使用 jquery 数据表添加行时 - 它会多次添加一行。不止一次

javascript - 每 5 次访问后更改链接 URL

javascript - 为所有最新浏览器和所有文档类型(xhtml、html、html5)重置默认颜色 css 设置的所有已访问站点颜色

javascript - 为什么我的 Raphael JS 动画不循环?

jQuery - 单击时如何将 anchor 滚动到页面顶部?

jquery - 使用 jQuery .animate 和 Bootstrap 定位 <div>

javascript - 如何在javascript中将大数组拆分成小数组?