4

我搜索了.wrap(), .append(), .wrapall(), 并.insertAfter()没有找到解决方案。我想拿一个新的div并将它包裹在一个 html 块上。我无法访问 HTML,所以我需要使用 jQuery。

.insertAfter()功能很理想,但不幸的是它会自动关闭 html 标签。

问题的根源是我需要将两个单独div的 s 居中,而我无法访问它们的 HTML。

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

1 回答 1

4

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

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

$('#header').nextUntil('#footer').wrapAll('<div id="centerContainer"></div>');
于 2013-09-27T18:09:11.757 回答