使用一个简单的脚本时使用.each获取不同的变量

时间:2012-01-23 14:50:05

标签: javascript jquery loops youtube

我正试图从一些youtube嵌入式视频中获取一个链接,以便与它们建立一些链接,这些链接会触发一个漂亮的花式框来观看视频。

从嵌入的视频中获取ID,并在右侧链接中替换它不是问题。一旦我尝试在循环中编码就会变脏。

我使用的javascript如下:

$('.portfolio_det iframe').each(function(i) {
    var videolink = this.src.replace('http://www.youtube.com/embed/', '');
    var videolink = videolink.replace('?fs=1&feature=oembed', '')

    $('.portfolio_thumb .youtubeLink').each(function(i) {
        $(this).attr('href', "http://www.youtube.com/watch?v=" + videolink);
    });
});

代码的最后一段检索链接 虽然他们都在第一个YouTube视频上创建了href。

如何将变量设置在循环中?

为了让它更清晰一点,这里有一个来自设置的jsfiddle:

JS fiddle

2 个答案:

答案 0 :(得分:0)

您正在定义var videolink两次并离开;在第二个结束时。 第二行应该是:

videolink = videolink.replace('?fs=1&feature=oembed', '');

答案 1 :(得分:0)

在循环外定义变量。如果你定义了一个变量,你也不必将var放在它前面。

var videolink;
$('.portfolio_det iframe').each(function(i) {
    videolink = this.src.replace('http://www.youtube.com/embed/', '');
    videolink = videolink.replace('?fs=1&feature=oembed', '')

    $('.portfolio_thumb .youtubeLink').each(function(i) {
        $(this).attr('href', "http://www.youtube.com/watch?v=" + videolink);
    });
});