我正在使用jQuery来解析XML文件,并且我试图使用jQuery .each循环将XML文件中的每个元素推送到一个数组。奇怪的是,如果我警告循环中数组的值,它应该出来,但如果在循环结束后尝试提醒数组中的值,则会导致“未定义”。推送到jQuery每个循环内的数组
当你在这种类型的循环中将值推入数组时,会发生什么奇怪的事情吗?
这里是JavaScript:
var splashArray = new Array();
// Load the Splash XML file and assign each image within to an array
$.get('splash.xml', function(xml) {
$('image', xml).each(function (i) {
splashArray.push($(this).attr("src"));
});
});
alert(splashArray[1]); // Results in undefined
这里是XML:
<?xml version="1.0" encoding="UTF-8"?>
<site>
<image src="splash1.jpg" />
<image src="splash2.jpg" />
<image src="splash3.jpg" />
<image src="splash4.jpg" />
<image src="splash5.jpg" />
<image src="splash6.png" />
</site>
仍然在这里未定义结果.. – jakeisonline 2009-09-27 20:07:59
对我来说它提醒splash2.jpg – Anatoliy 2009-09-27 20:12:17
是的,你的代码将正确地检索$ .get块内的数组,但为什么它不会在$ .get之外检索它块。也许我不清楚。我的问题是没有让alert()工作,它使得数组值可以在后面的代码中检索。 – cmal 2009-09-27 20:14:12