我搜索了.wrap()
,.append()
,.wrapall()
和.insertAfter()
,但未找到解决方案。我想采用一个新的div
并将其包装在一个html块中。我无法访问HTML,所以我需要使用jQuery。
.insertAfter()
函数非常理想,但不幸的是它会自动关闭html标记。
问题的根源在于我需要将两个单独的div
集中在一起,我无权访问其HTML。
$(function () {
$('<div id="centerContainer">').insertAfter('#header');
$('</div><!-- centerContainer -->').insertAfter('#footer');
});
答案 0 :(得分:4)
这不是DOM的功能,.insertAfter()
以这种方式向DOM添加元素而不是字符串,您应该选择所有元素,然后在返回的集合上调用.wrapAll()
。
假设(基于发布的代码)#header
和#footer
元素之间的所有元素(,如果他们的兄弟姐妹)应该是用另一个元素包装,您可以使用.nextUntil()
选择#header
的下一个兄弟,直到#footer
元素,然后在返回的集合上调用.wrapAll()
:
$('#header').nextUntil('#footer').wrapAll('<div id="centerContainer"></div>');