使用jQuery,是否有一个包装所有连续元素的wrapAll版本?像这样:
<h2>bar</h2>
<h2>bar</h2>
<p>foo</p>
<p>foo</p>
<h2>bar</h2>
<p>foo</p>
<h2>bar</h2>
变成了这个:
<h2>bar</h2>
<h2>bar</h2>
<div>
<p>foo</p>
<p>foo</p>
<h2>bar</h2>
<p>foo</p>
</div>
<h2>bar</h2>
甚至更复杂,嵌套
:
<h2>bar</h2>
<h2>bar</h2>
<span>
<p>foo</p>
<p>foo</p>
</span>
<h2>bar</h2>
<p>foo</p>
<h2>bar</h2>
<span>
<p>foo</p>
</span>
<h2>bar</h2>
变成了这个:
<h2>bar</h2>
<h2>bar</h2>
<div>
<span>
<p>foo</p>
<p>foo</p>
</span>
<h2>bar</h2>
<p>foo</p>
<h2>bar</h2>
<span>
<p>foo</p>
</span>
</div>
<h2>bar</h2>
何时运行?
$('p').wrapAll2('<div />')
答案 0 :(得分:1)
据我所知,没有这样的功能,但你可以自己写。乍一看似乎并不太难。
你必须经历页面上的所有'p'(或任何你要包装的)元素,找到第一个,然后它是最后一个父母,然后是最后一个,它是最后一个父元素,然后获取所有元素,包括第一个和最后一个父母并将它们包装成所需的标签。