Jquery将iframe的src属性插入到它们各自的id中

时间:2011-05-19 16:02:50

标签: jquery

我正在尝试将src属性动态添加到iframe中,取自各自的ID。

这是我正在使用的(使用'this'的不正确使用,但你应该得到我想做的。)

$(this).parent().find("iframe").attr('src', http://www.youtube.com/embed/" + $(this).attr('id'));

我的iframe代码如下所示:

<iframe id = "XpOPKZB8dgY" src=""></iframe>

如果它有帮助,可以提供更多上下文:

<script>    
    $(document).ready(function() {
        $("iframe").attr('src', '');   
        $(".details").slideUp();   
        $("a.date").click(function() {   
            var key = $(this).parent().attr('class');  
            $(this).parent().children("div").slideToggle('slow');    
            $(this).parent().find("iframe").attr('src', "http://www.youtube.com/embed/" + $(this).attr('id');                    
            $(document.body).animate({    
                'scrollTop':   $(this).offset().top    
            },   1000);    
        });  
    });

</script>

谢谢!

5 个答案:

答案 0 :(得分:3)

你可以这样做:

$(this).parent().find("iframe").each(function(i) {
    var src = 'http://www.youtube.com/embed/' + $(this).attr('id')
    $(this).attr('src', src);
});

答案 1 :(得分:1)

首先,你需要修复你的jQuery,你只是缺少一个引号:

$(this).parent().find("iframe").attr('src', "http://www.youtube.com/embed/" + $(this).attr('id'));

一旦你将src值重新分配给iFrame,我会尝试执行这个JavaScript:

document.getElementById('XpOPKZB8dgY').contentWindow.location.reload();

我没有对此进行测试,但它应该可行。 :)

希望有所帮助,
spryno724

答案 2 :(得分:1)

http://jsfiddle.net/THnTb/

    $("iframe").each(function() {
        $(this).attr('src', 'http://www.youtube.com/embed/' + $(this).attr('id'));
    });

答案 3 :(得分:1)

您在将src应用回iframe的行上缺少右括号。 同样从iframe中提取id可能需要与应用src相同的语法。

    $(document).ready(function() {
        $("iframe").attr('src', '');   
        $(".details").slideUp();   
        $("a.date").click(function() {   
            var key = $(this).parent().attr('class');  
            $(this).parent().children("div").slideToggle('slow'); 

            var newSrc = "http://www.youtube.com/embed/" + 
              $(this).parent().find("iframe").attr('id'); 

            $(this).parent()
              .find("iframe")
              .attr(
                'src', newSrc 
               ); // << Missing Here                    
            $(document.body).animate({    
                'scrollTop':   $(this).offset().top    
            },   1000);    
        });  
    });

答案 4 :(得分:0)

我认为你没有提到iframe id,你需要引用它,就像你设置src属性一样:

$(this).parent().find("iframe").attr('src', "http://www.youtube.com/embed/" + $(this).parent().find("iframe").attr('id'));