无法设置全局变量javascript

时间:2017-02-14 14:24:21

标签: javascript jquery

我收到的对象数组如下所示: 我道歉,这是荷兰语,它不应该是一个问题,但它确实看起来有点不合适。

{
  "data": [
    {
      "title": "Dit is een excercise",
      "application": "afbeeldingVerhalen",
      "language": "nl_NL",
      "id": "",
      "image": "groot.jpg"
    },
    {
      "objAudio": "groen.mp3",
      "objImage": "groen.jpg",
      "objText": "Dit is groen",
      "objLocation": {
        "X": "61",
        "Y": "78"
      }
    },
    {
      "objAudio": "pijl.mp3",
      "objImage": "",
      "objText": "Dit is een pijl. $%$%%",
      "objLocation": {
        "X": "61",
        "Y": "78"
      }
    },
    {
      "objAudio": "groot.mp3",
      "objImage": "",
      "objText": "Dit is groot!",
      "objLocation": {
        "X": "61",
        "Y": "78"
      }
    },
    {
      "objAudio": "wit.mp3",
      "objImage": "wit.jpg",
      "objText": "Dit is wit, wit is een kleur net zoals groen.",
      "objLocation": {
        "X": "61",
        "Y": "78"
      }
    },
    {
      "objAudio": "uit.mp3",
      "objImage": "uit.jpg",
      "objText": "Dit is buiten het plaatje, we noemen dit ook wel uit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. At enim hic etiam dolore. Quis Aristidem non mortuum diligit? Cur deinde Metrodori liberos commendas? Quod si ita se habeat, non possit beatam praestare vitam sapientia. Primum in nostrane potestate est, quid meminerimus? Verba tu fingas et ea dicas, quae non sentias? Duo Reges: constructio interrete. Tum Quintus: Est plane, Piso, ut dicis, inquit. Summus dolor plures dies manere non potest?",
      "objLocation": {
        "X": "61",
        "Y": "78"
      }
    }
  ]
}

我使用$ .get来获取此信息。在$ .get我可以在console.log(js_data ['data'] [0] .title)中输出“Dit is een excercise”但是如果我在$ .get之外的我的console.log中我得到了未定义。

我确实通过var title;在$ .get之外声明了变量 功能之外。

我认为还可以注意到控制台中没有错误。

提前致谢! 编辑:

$(document).ready(function(){
    var js_data;
    var title;
    $.get("exercise.php", function(data){
        js_data = $(data).filter('.js_data');
        js_data = js_data.text();

        js_data =  JSON.parse(js_data);
        console.log(js_data);
        console.log(js_data['data'][0].title);
        title = js_data['data'][0].title;
        });
    console.log(title);
    $("#title").text(title);    
});

1 个答案:

答案 0 :(得分:1)

Ajax请求异步工作。在您使用

的位置
console.log(title);
$("#title").text(title);

,请求尚未完成,因此var title尚未设置为ajax结果的内容。