人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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/1件

▽最新の回答へ

1 ● 匿名回答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)を一度変数に退避してあげてください。


匿名質問者さんのコメント
ありがとうございます! できました!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ