无法设置全局变量javascript

问题描述:

我收到一个像这样的对象数组: 我道歉,这是在荷兰,它不应该是一个问题,但它确实看起来有点不合适。无法设置全局变量javascript

{ 
    "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”,但是如果我console.log这个$ .get之外我得到未定义。

我确实在函数的外面声明了$ .get之外的变量,仅仅是var title;

我认为它也很好的注意到控制台中没有错误。

在此先感谢! 编辑:

$(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);  
}); 
+2

你可以发布你使用$ .get的脚本吗? – patrick

+0

正如[tag:patrick]所说的,只要发布代码 – LS05

+1

,就可以在数组中混合使用数据,其中一个使用title属性,其余不使用。 –

Ajax请求以异步方式工作。点在哪里使用

console.log(title); 
$("#title").text(title); 

,请求尚未完成,所以VAR title尚未设置为AJAX结果的内容。

+0

谢谢你的回复。那么我该如何解决这个问题? – Soshiro

+1

查看链接的重复问题。但是,让我用另一个问题来回答你的问题:为什么不把'$(“#title”)。text(title);'放在get请求的回调中? – Connum

+0

成功回调可以用于异步行为的情况。 – Niraj