【问题标题】:How push element to array from ajax - jQuery如何将元素从 ajax 推送到数组 - jQuery
【发布时间】:2014-11-13 10:17:45
【问题描述】:

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

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

【问题讨论】:

  • 试试slike[Math.floor(Math.random() * (slike.length-1))]
  • 我试过了,同样的事情。在控制台中返回此错误“GET localhost/test/undefined 404 (Not Found)”

标签: javascript jquery arrays ajax push


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-14
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 2021-08-09
    相关资源
    最近更新 更多