匿名質問者

Ajaxの$.getについて


今Youtubeのステータス情報を取得する練習をしているのですが
例えば
<html>
<ul>
<li data-key="Youtube情報"></li>
<li data-key="Youtube情報"></li>


</ul>

<script>
$('ul li').each(function(){
var key = $(this).data('key');
var url = "http://gdata.youtube.com/feeds/api/videos/"+key;
var options = {
"alt":"json",
"v": 2
};
$.get(url,options,function(rs){
var f = rs.entry;
console.log(f['yt$statistics']['viewCount']);
$("ul li").text(f['yt$statistics']['viewCount']);
},"json");
});

として連続して処理させたいのですがconsole.logではそれぞれの情報を取得しているのですが結果は1つの情報しか反映してくれません
例:viewCount= 123, viewCount= 456 →結果 すべてのリストに123が入ってしまう

$.getはループ処理をかけることができないのでしょうか?よろしくお願いします
(for文でも同様のことが起きました)

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/12/17 16:57:07

ベストアンサー

匿名回答1号 No.1

$('ul li').each(function(){
    var li = $(this);
    var key = li.data('key');
    var url = "http://gdata.youtube.com/feeds/api/videos/"+key;
    var options = {
        "alt":"json",
        "v": 2
    };
    $.get(url,options,function(rs){
        var f = rs.entry;
        console.log(f['yt$statistics']['viewCount']);
        li.text(f['yt$statistics']['viewCount']);
    },"json");
});

こういうことでしょうか?
$(this)を一度変数に退避してあげてください。

匿名質問者

ありがとうございます!

できました!

2012/12/17 16:57:23

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません