jQuery围绕一大块HTML包装div

时间:2013-09-27 18:00:59

标签: javascript jquery

我搜索了.wrap().append().wrapall().insertAfter(),但未找到解决方案。我想采用一个新的div并将其包装在一个html块中。我无法访问HTML,所以我需要使用jQuery。

.insertAfter()函数非常理想,但不幸的是它会自动关闭html标记。

问题的根源在于我需要将两个单独的div集中在一起,我无权访问其HTML。

$(function () {  
    $('<div id="centerContainer">').insertAfter('#header');
    $('</div><!-- centerContainer -->').insertAfter('#footer');
});

1 个答案:

答案 0 :(得分:4)

这不是DOM的功能,.insertAfter()以这种方式向DOM添加元素而不是字符串,您应该选择所有元素,然后在返回的集合上调用.wrapAll()

假设(基于发布的代码#header#footer元素之间的所有元素(,如果他们的兄弟姐妹)应该是用另一个元素包装,您可以使用.nextUntil()选择#header的下一个兄弟,直到#footer元素,然后在返回的集合上调用.wrapAll()

$('#header').nextUntil('#footer').wrapAll('<div id="centerContainer"></div>');