为什么我的Array在AJAX函数之外表现不同? (填充jsTree)

时间:2017-11-08 21:27:10

标签: javascript jquery json xml 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>

enter image description here

1 个答案:

答案 0 :(得分:-1)

它命中第一行代码;

//THIS ARRAY IS BORKED console.log(myAry);

异步Javascript 在Ajax调用返回进程之前