下のリンクをクリックして私がこれまでに持っているもののソースを見ると、私が抱えている問題がわかります。
- ゲームデータを含むRicky.jsonからJSONデータをフェッチします。
- 次に、そのJSONデータの一部を使用して、テキストフィールドにピカチュウの名前を設定しようとしましたが、代わりに、それがであると表示され
undefined
ます。
Chromeのコンソールに、オブジェクト「pikachu」が存在すると表示されます。これは、コンソールでアラートを送信すると、「オブジェクトオブジェクト」で返されるためです。JSON.stringify()を使用してコンソールから文字列化することもできます。
main()
機能自体はグローバルではないのに、他のどこでもグローバルなのはなぜですか?
function ChangeName(){
var n=prompt("What would you like to rename your Pikachu?",""+pikachu.pikaname+"");
pikachu.pikaname=n;
}
function main(){
try{
ajaxObj=new XMLHttpRequest();
pikaname=document.getElementById("pikaname");
age=document.getElementById("age");pikachu="";
ajaxObj.onreadystatechange=function(){
if(ajaxObj.readyState>=4&&ajaxObj.status==200){
pikachu=JSON.parse(ajaxObj.responseText);
}
}
ajaxObj.open("GET","players/Ricky.json",true);
ajaxObj.send();
pikaname.value=pikachu.pikaname;
}
catch(e){
alert(e);
}
}