insertBefore() 一个 iframe jquery 问题

insertBefore() an iframe jquery problems

我必须处理来自 WISIWYG 的内容,用户可能会在其中嵌入 YouTube 视频。

我需要在 WISIWYG 输出到的容器中搜索任何 iframe,然后将该 iframe 包装在 <div class="video-wrapper"> 标记中。这是我尝试过的:

        $('div.content').each(function () {
            var iframe = $(this).find('iframe');

            $('<div class="video-wrapper">').insertBefore(iframe);
            $('</div>').insertAfter(iframe);

        });

这不起作用,最终只会在 iframe 之前添加 div(包括结束标记)。

想法?

使用 wrap - 你不能像这样添加部分 HTML,它是无效的:

var iframe = $(this).find('iframe');
iframe.wrap("<div class='video-wrapper' />");

您应该使用 $.wrap。参见:http://api.jquery.com/wrap/

$('div.content').each(function () {
    $(this).find('iframe').wrap('<div class="video-wrapper"></div>');
});