前に、正しい値を持っていたが、私は値が返されたXMLファイル内の属性の最大値を返す関数JavaScript関数は、常に常に0であるので、私は下の値を考える変数は
を持って、間違った値を返します。 JQuery関数は、内部で何が起こるかを知らない。ここでは関数は次のとおりです。
function findHighestValue(url,attr){
var highestValue = 0;
$.ajax({
type: "GET",
url: url,
dataType: "xml",
success: function(xml) {
$(xml).find("achievement").each(function(){
var value = $(this).find(attr).text();
value = value*1;//typecast
console.log("value: "+value);//shows correct value
console.log("highestValue in ajax: "+highestValue);//shows correct value
if (value >= highestValue){
highestValue = value;
console.log("Value higher highesValue detected!");//works as intended
}
});
}
});
console.log("Highest Value: "+highestValue);// is 0 again
return highestValue;//always returns 0
}
私はレッスンを学んだ、それは完全に意味があります。私は非同期をfalseに設定し、今は意図通りに動作します。ありがとうございました! – dan
@dan asyncをfalseに設定することはお勧めしませんが、これは、ajaxリクエストが長時間かかる場合にブラウザをフリーズするためです。あなたのロジックを実行するためにコールバック関数を使用するほうがはるかに優れています。 –
私は同意する、私はそれを修正します。 – dan