0

SummerNote 有问题(Bootstrap 3 的 WYSIWYG 插件)

我试图生成这个:

<div class="video-container">
<iframe  src="http://blablabla"/>
</div>

使用这个 jQuery 代码:

  $d = $("<div>").attr('class','video-container');
        $video = $('<iframe>')
          .attr('id','video-iframe')
          .attr('src', '//www.youtube.com/embed/blablabla')
          .attr('width', '640').attr('height', '360')
range.create().insertNode($('<div class="video-container">' + ($video[0]) + '</div>')[0]);

这给出了结果:

[对象 HTMLIFrameElement]

我不明白为什么!你能帮我吗?

4

1 回答 1

3

这是因为您将字符串 ( '<div class="video-container">') 连接到 DOM 对象。这会尝试将 DOM 对象转换为字符串:与大多数 Javascript 对象一样,DOM 对象不会以任何好的方式转换为字符串,而您会得到[object HTMLIFrameElement].

你实际上并没有很遥远,但你应该更多地使用 jQuery 的力量。因此,与其构建 HTML 字符串,不如使用 jQuery 选择进行操作。

var node = $('<div class="video-container" />'); //  create the div element
node.append($video); // add the video to the div

range.create().insertNode(node[0]); // add the node to the range
于 2014-05-26T18:21:37.770 回答