2017-02-14 137 views
-3

我收到一個像這樣的對象數組: 我道歉,這是在荷蘭,它不應該是一個問題,但它確實看起來有點不合適。無法設置全局變量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屬性,其餘不使用。 –

回答

1

Ajax請求以異步方式工作。點在哪裏使用

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

,請求尚未完成,所以VAR title尚未設置爲AJAX結果的內容。

+0

謝謝你的回覆。那麼我該如何解決這個問題? – Soshiro

+1

查看鏈接的重複問題。但是,讓我用另一個問題來回答你的問題:爲什麼不把'$(「#title」)。text(title);'放在get請求的回調中? – Connum

+0

成功回調可以用於異步行爲的情況。 – Niraj