2014-09-18 41 views
0

当我尝试将某个元素推送到数组并显示随机元素时,浏览器返回的数组未定义。问题在哪里?如何将元素从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'); 
+0

尝试[Math.floor(的Math.random()*(slike.length-1))]' – SeinopSys 2014-09-18 22:30:28

+0

我试过了,再同样的事情。在控制台中返回此错误“GET http:// localhost/test/undefined 404(Not Found)” – 2014-09-18 22:34:22

回答

1

AJAX是异步的。填充数组的代码在之后被称为使用该数组的代码。移动,产生图像到成功处理程序的代码:`S形

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

谢谢。这工作。 – 2014-09-18 22:47:44

相关问题