我目前有一个html文档,格式如下:
<h1>a</h1>
<p>bla</p>
<p>more bla</p>
<h1>b</h1>
<p>different bla</p>
我正在寻找一种方法将<h1>
和<p>
包含在div中,所以它看起来像:
<div>
<h1>a</h1>
<p>bla</p>
<p>more bla</p>
</div>
<div>
<h1>b</h1>
<p>different bla</p>
</div>
但是我使用wrap和wrapAll来实现这一点并不成功。
答案 0 :(得分:6)
var tagName = 'h1';
$(tagName).each(function ()
{
var $this = $(this);
$this.add($this.nextUntil(tagName)).wrapAll('<div></div>');
});
答案 1 :(得分:1)
你可以做的是在DOM中创建一个你想要它的<div>
,然后将你想要的元素移动到它里面。
例如(可能更好):
$("h1").before("<div></div>");
$("h1").each(function() {
$(this)
.nextUntil("h1").andSelf()
.appendTo(
$(this).prev("div")
);
});
答案 2 :(得分:1)
如果你可以添加更多的css类,那可能会更容易。 见http://jsfiddle.net/avaXp/
<h1 class='one'>a</h1>
<p class='one'>bla</p>
<p class='one'>more bla</p>
<h1 class='two'>b</h1>
<p class='two'>different bla</p>
$('.one').wrapAll("<div></div>")
$('.two').wrapAll("<div></div>")