CodaholicCodaholicRSS2011年07月28日に投稿[jQuery]ajaxメソッドをループを使って繰り返す場合はeachを使うとうまくいくjQueryのajaxメソッドをforで繰り返し実行した時に期待した結果が得られませんでした。これは非同期で実行されているがための挙動だと思いますが、詳細は今のところ調査中です。forでループさせることはできませんでしたが、eachメソッドを使うことで正しく動くようになりました。動かないコードと動くコードを示します。ajaxのリクエストを受け付けるPHPです。IDのフォロー数とフォロワー数を取得してjsonで出力します。$json;?>下記はajaxを使ってリクエストを行うスクリプトです。IDを配列に格納して、格納されたIDの数だけリクエストを行うようにしました。IDと一致するidが設定されたdiv要素にappendします。1つ目のforでループをしているものは正しく結果が表示されません。id="remaining_days"></div></body></html>下記はforをeachメソッドに変えたものです。こちらは意図していた通りの動きをします。id="remaining_days"></div></body></html>非同期であることとAPIを使っているのでレスポンスを受け取るまでに遅延があることが原因だと推測していますが、jQueryのeachメソッドがそのあたりを吸収してくれているのでしょうか。同じような現象にひっかかった方はeachメソッドをお試しください。12:23ループ変数iのスコープが外側なのが原因かと。forのほうは、successコールバックで参照しているiが同一の変数を指しているので、コールバックが実行されるときにはtargetId.lengthの値になってしまっているかと思います。13:34コメントありがとうございます。単純に僕のスコープに対する理解不足ですね...successのコールバックに正しいiを渡せるように何とか調べてみます。Reply返信をキャンセルする。(1)ドメインを取得できるサービス。