为什么我的数组在 AJAX 函数之外表现不同? (填充 jsTree)
Why is my Array behaving differently outside of an AJAX function? (populating jsTree)
长话短说,我正在为 jsTree 创建一个类似于 JSON 的数组。我不明白的是,为什么数组在 AJAX 成功函数内部非常适合我的需求,但在该函数的 外部 却损坏了。查看我的控制台转储中的屏幕截图,您可以看到不同之处。为什么函数内部和函数外部不同?
基本上,除非格式完美,否则我无法做我需要做的事情:(函数内的 myAry)
是什么给了,伙计?
var myAry = [];
$.ajax({
type: "GET",
url: "parents.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('group').each(function() {
myAry.push({
"id": $(this).find('GroupID').text(),
"parent": "#",
"text": $(this).find('GroupName').text(),
});
}); //end each loop
//this array is PERFECT
console.log(myAry);
} //end success function
}); //end ajax GET
//THIS ARRAY IS BORKED
console.log(myAry);
xml:
<groups>
<group>
<GroupID>1</GroupID>
<GroupName>Instructional Assistant</GroupName>
</group>
<group>
<GroupID>2</GroupID>
<GroupName>Technician</GroupName>
</group>
<group>
<GroupID>3</GroupID>
<GroupName>HR Specialist</GroupName>
</group>
</groups>
它命中了第一行代码;
//THIS ARRAY IS BORKED
console.log(myAry);
异步Javascript
在 Ajax 调用 returns 进程之前
长话短说,我正在为 jsTree 创建一个类似于 JSON 的数组。我不明白的是,为什么数组在 AJAX 成功函数内部非常适合我的需求,但在该函数的 外部 却损坏了。查看我的控制台转储中的屏幕截图,您可以看到不同之处。为什么函数内部和函数外部不同?
基本上,除非格式完美,否则我无法做我需要做的事情:(函数内的 myAry)
是什么给了,伙计?
var myAry = [];
$.ajax({
type: "GET",
url: "parents.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('group').each(function() {
myAry.push({
"id": $(this).find('GroupID').text(),
"parent": "#",
"text": $(this).find('GroupName').text(),
});
}); //end each loop
//this array is PERFECT
console.log(myAry);
} //end success function
}); //end ajax GET
//THIS ARRAY IS BORKED
console.log(myAry);
xml:
<groups>
<group>
<GroupID>1</GroupID>
<GroupName>Instructional Assistant</GroupName>
</group>
<group>
<GroupID>2</GroupID>
<GroupName>Technician</GroupName>
</group>
<group>
<GroupID>3</GroupID>
<GroupName>HR Specialist</GroupName>
</group>
</groups>
它命中了第一行代码;
//THIS ARRAY IS BORKED
console.log(myAry);
异步Javascript 在 Ajax 调用 returns 进程之前