繁体   English   中英

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

[英]How push element to array from ajax - jQuery

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

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');
        }
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM