(embedメソッドを使用して)ページ内のすべてのYouTubeビデオをループし、iframe
jQueryを使用してビデオの各タイトルに追加しようとしています。私のHTMLは次のようになります。
<div class="video-wrapper">
<div class="video-container">
<iframe src="http://www.youtube.com/embed/qzNSsDD_LzE" frameborder="0" allowfullscreen></iframe>
</div>
</div>
<div class="video-wrapper">
<div class="video-container">
<iframe src="http://www.youtube.com/embed/9bZkp7q19f0" frameborder="0" allowfullscreen></iframe>
</div>
</div>
そして、jQueryは次のようになります。
var video = $('.video-container');
video.each(function() {
var youTuberegex = /(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=))([\w-]{10,12})/g,
videoID = youTuberegex.exec($(this).find('iframe').attr('src'))[1];
$.getJSON('http://gdata.youtube.com/feeds/api/videos/'+videoID+'?v=2&alt=jsonc', function(data){
var videoTitle = data.data.title;
video.after('<figcaption>'+videoTitle+'</figcaption>');
});
});
だから、私は(しようとしている)各ビデオを撮り、正規表現を使用してIDを抽出しています。次に、ビデオフィードを使用してタイトルを取得し、それをに追加しますvideo-container
。
これはjsFiddleにあります。ご覧のとおり、問題は各ビデオのタイトルが毎回追加されることです。私はどこで間違っているのですか、そしてこれは私が求めていることを達成するための効率的な方法ですか?