jQueryの戻り値がうまくいかない・・・
jQueryでXMLを読み込んでパースした値を戻り値として返す関数を作っているのですが、なぜか動作しません。
すみませんがどこがいけないのか教えていただけないでしょうか?
-- JS ----------------------
function getValueXML(){
var value = "初期値";
jQuery.ajax({
url: "/text.xml",
type: 'get',
dataType: 'xml',
timeout: 1000,
success: parse_suc,
error: parse_err
});
function parse_suc(xml){
value = $(xml).find("hoge").text();
}
function parse_err(){
alert("XMLの取得に失敗しました");
}
return value;
}
-- test.xml ---------------------
<?xml version="1.0" encoding="UTF-8"?>
<root>
<hoge>テスト</hoge>
</root>
このgetValueXML関数を実行すると戻り値には"初期値"が返ってきます。
試しにparse_suc関数を以下のようにしてみたら"テスト"がアラート表示されました。
つまりparse_suc関数内ではXMLのパースがうまくいっているようなのです。
function parse_suc(xml){
value = $(xml).find("hoge").text();
alert(value);
}
しかしparse_suc関数を出るとvalueにはその値が引き継がれません。
valueのスコープがjQueryだとどういう風になっているのかよくわからなく、ずっと悩んでいます。
お手数ですがおわかりの方がいましたらご説明頂ければと思います。
お礼
osamuyさんの回答、ずばり私が知りたかったことです。 おかげさまで問題解決いたしました。 ありがとうございました!!