使用jQuery将给定的HTML代码插入到一个div部分中。

3

我有几个像这样的HTML代码组合:

<h2></h2>
<p></p>
<iframe></iframe>
<hr/>

我希望你能用jQuery创建类似的代码:

<div id="sample">
<h2></h2>
<p></p>
<iframe></iframe>
</div>
<hr/>

我可以执行这些功能:

我只需要执行这些功能:

$('h2').before('<div id="sample">');
$('iframe').after('</div>')

但这些函数并不仅插入给定的文本,它们会创建新的div部分。为了帮助我的页面包含许多这样的组合,我需要使用jQuery将HTML的特定部分放入一个div部分中。

可能是重复的问题:使用jQuery将元素组包装起来 - j08691
2个回答

4

您可以使用nextUntil来选择与选择器匹配的兄弟元素,使用wrapAll将整个匹配集合包装在另一个元素中。您需要使用andSelf将原始的h2元素添加回匹配集合中:

​$("h2").nextUntil("hr").andSelf().wrapAll("<div id='sample'>");​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

由于某些原因,它无法正常工作 - 具有id = sample的div部分未被创建。 - пацан
但是,如果我执行函数$("h2").nextUntil("hr").andSelf().css(),它可以正常工作,那么使用wrapAll有什么问题呢? - пацан
终于把所有东西都搞定了,错误控制台显示这段 jQuery 代码的末尾存在非法字符,我猜是复制粘贴时出错了。另外,我不需要使用 wrapAll(),只需使用 wrap() 函数来创建分隔的 div 区块。由于需要多个类似的 div 区块,不能使用 id,所以应该使用 class 来替代。 - пацан

0
$('h2').nextUntil('hr').andSelf().wrap('<div class="sample">');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接