1

クラス「yturl」でdivを読み取り、youtubeからiframeに置き換えたいです。

ソース コードが機能しないのはなぜですか?

私は次のソースコードを持っています:

HTML:

<div class="yturl">http://www.youtube.com/watch?v=mwVuURFNX0E</div>

JS:

$("div.yturl").each(function(){
    var regex = /(\?v=|\&v=|\/\d\/|\/embed\/|\/v\/|\.be\/)([a-zA-Z0-9\-\_]+)/;
    var youtubeurl = $(this).text();
    var regexyoutubeurl = youtubeurl.match(regex);
    if (regexyoutubeurl) {
        $(this).html("<iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/"+regexyoutubeurl[2]+" frameborder=\"0\" allowfullscreen></iframe>");
    }
});
4

1 に答える 1

1

タイプミスのため、機能していません。

あなたのコードはhtmlコードに従って生成されました(ここで不足している引用符を見つけてください):

<iframe width="420" height="315" src="http://www.youtube.com/embed/mwVuURFNX0E frameborder=" 0"="" allowfullscreen=""></iframe>

修正された JavaScript コード:

$("div.yturl").each(function(){
    var regex = /(\?v=|\&v=|\/\d\/|\/embed\/|\/v\/|\.be\/)([a-zA-Z0-9\-\_]+)/;
    var youtubeurl = $(this).text();
    var regexyoutubeurl = youtubeurl.match(regex);
    if (regexyoutubeurl) {
        $(this).html("<iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/"+regexyoutubeurl[2]+"\" frameborder=\"0\" allowfullscreen></iframe>");
    }
});

動的に生成したコードを確認するには、Firebug または Webkit Web Inspector を使用することをお勧めします。

于 2012-07-25T23:19:30.290 に答える