我試圖創建一個通過YouTube獲取的視頻列表。這是我的HTML:jQuery .each()僅適用於最後一個元素
<ul class="videos-list">
<li>
<a href="#" class="vid_thumb">
<img src="http://placehold.it/120x90&text=Loading+.+.+." class="yt_thumb" data-url="http://gdata.youtube.com/feeds/api/videos/f_JRZI9o49w?v=2&alt=jsonc" alt="" />
<span class="duration">Loading...</span></a>
<h5><a href="#"></a></h5>
</li>
<li>
<a href="#" class="vid_thumb">
<img src="http://placehold.it/120x90&text=Loading+.+.+." class="yt_thumb" data-url=
"http://gdata.youtube.com/feeds/api/videos/uHUHFthr2QA?v=2&alt=jsonc" alt="" />
<span class="duration">Loading...</span></a>
<h5><a href="#"></a></h5>
</li>
這裏是JavaScript:
$(function() {
/**
* Set up JSON parsing for video pages
*/
$("a.vid_thumb").each(function(i) {
$this = $(this);
feed_url = $this.children(".yt_thumb").attr("data-url");
$.getJSON(feed_url, function(json) {
$title = json.data.title;
$url = json.data.player.
default;
$thumb = json.data.thumbnail.sqDefault;
$duration = json.data.duration;
$likes = json.data.likeCount;
$views = json.data.viewCount;
$this.next("h5").html("<a href=" + $url + ">" + $title + "</a>");
$this.children(".duration").html($duration);
$this.children(".yt_thumb").attr("src", $thumb);
$this.next("span.view_count").html($views + " Views");
$this.next("span.upload_date").html($likes + " Likes");
});
});
});
的腳本應該與類名 「vid_thumb」 所有錨工作。但它只適用於最後一個元素。
你可以在這裏看到它的行動:http://jsfiddle.net/ZJNAa/我錯過了什麼嗎?
我加入其中,持續時間檢查點後的警報,似乎你的代碼填充第一持續時間也在第二格。並在正確的時間後替換它。 – 2012-02-21 09:28:40