jquery全局数组填充函数,但在函数外部仍然为空
我有一个全局变量images,其中填充了来自xml文件的路径名。解析xml文件的函数可以工作,并填充数组。但是当函数完成时,我的全局变量仍然是空的。有人有解决办法吗jquery全局数组填充函数,但在函数外部仍然为空,jquery,Jquery,我有一个全局变量images,其中填充了来自xml文件的路径名。解析xml文件的函数可以工作,并填充数组。但是当函数完成时,我的全局变量仍然是空的。有人有解决办法吗 $(document).ready(function() { var images = []; var descriptions = []; getImages(); function getImages() { $(document).ready(function () { $.ajax({
$(document).ready(function() {
var images = [];
var descriptions = [];
getImages();
function getImages() {
$(document).ready(function () {
$.ajax({
type: "GET",
url: "xml/page_pictures.xml",
dataType: "xml",
success: xmlParser
});
});
function xmlParser(xml) {
$(xml).find("pages").children().each(function() {
$(this).find("images").children().each(function() { //find all the image nodes in this node
images.push($(this).attr("path").toString());
descriptions.push($(this).find("image-label").text());
});
});
}
}
});
调试时,我注意到在.each的末尾,我的变量图像填充了129个项目,但是当函数完全完成并且我在getImages之后检查图像时,我的变量图像再次为空
提前感谢。$。ajax是异步的,这意味着当getImages结束时,xmlParser还没有运行。的可能副本要进一步查看注释,任何对图像的即时访问都需要在回调xmlParser内完成。我不建议这样做,但如果确实需要同步行为,可以在$.ajax回调中提供async:false。