for (var i = 0; i < 3; i++){
$.ajax({
url: "ajax.php",
success: function(data){
alert(i);
}
});
}
"0"、 "1"、 "2"のアラートを取得するソリューションが必要です。今度は "3"と3つのアラートが表示されます。jQuery。サイクル内でajaxからvarを取得する
for (var i = 0; i < 3; i++){
$.ajax({
url: "ajax.php",
success: function(data){
alert(i);
}
});
}
"0"、 "1"、 "2"のアラートを取得するソリューションが必要です。今度は "3"と3つのアラートが表示されます。jQuery。サイクル内でajaxからvarを取得する
$.ajax()
コールの周りにクロージャを配置する必要があります。私の時間Ajaxはi
の値が実際に3
で返すよう
for (var i = 0; i < 3; i++){
(function (loop_var) {
$.ajax({
url: "ajax.php",
success: function(data){
alert(loop_var);
}
});
})(i);
}
現在は3
を出力しています。
for (var i = 0; i < 3; i++){
(function(i){
$.ajax({
url: "ajax.php",
success: function(data){
alert(i);
}
});
})(i);
}
は、非同期応答が到着するまでの値を保持しますクロージャを作成するためのコードの周りに匿名関数ラッパーを使用してください。 ajax.phpページでは、iを呼び出しページに戻す必要があります。ですから、ajax.phpページでiを返します。 jsonオブジェクトまたはパイプで区切られた簡単な文字列を使用して、ajax.phpの戻り値を格納できます。
for (var i = 0; i < 3; i++){
$.ajax({
data: {par: i},
url: "ajax.php",
success: function(data){
//data is a pipe-separated string
var cnt = data.split("|")[0];
alert(cnt);
}
});
}
@jakeclarksonソリューションと同じです。ありがとう。また+1 – Eddie
がパラメータとしてajax.phpページへのI値を渡します。
ループ内で一時変数(たとえば 'j')に値 'i'を保存し、それを' success'ハンドラで使用してみてください。 – millimoose
[JavaScriptのコールバック関数の変数は常にループの最後の値を取得しますか?](http://stackoverflow.com/questions/2520587/variable-in-javascript-callback-functions-always-gets-last-value-in -loop) – Quentin
私は試しました - それは動作しませんでした – Eddie