次のコードが期待どおりに動作しないため、jquery post の動作について理解できないことがあるはずです。
var list = [];
$.post("list", function(data){
for(var i = 0; i < data.length; i++){
list.push({label: data[i].label, value: data[i].value});
alert(list[0].value);
}
});
alert(list[0].value);
2 つのアラートに注意してください。最初のアラートには値があり、2 番目のアラートは「未定義」です。なぜですか? どうすればこれを回避できますか?私は $.get と $.ajax で同じ問題を抱えていたので、何か間違ったことをしているに違いありません。探してみましたが、本当に何も見つかりませんでした。
アップデート:
var templeList = [];
$.ajax({
url: "templeList",
type: 'GET',
success: function(data){
for(var i = 0; i < data.length; i++){
templeList.push({label: data[i].label, value: data[i].value});
alert(templeList[0].value);
}
},
cache: true,
async:false
});
alert(templeList[0].value);
このコードはそれを解決します、迅速な対応に感謝します