jquery,在div中包装元素

sti*_*tig 22 html jquery word-wrap

我有这个:

<div>content element</div>
<div class="accordionTrigger">
  <div><h1>title</h1></div>
  <p>text</p>
  <p>text</p>
  <p>text</p>
  ...
</div>
<div>content element</div>
<div>content element</div>
Run Code Online (Sandbox Code Playgroud)

我需要将所有p-tags包装在div中,如下所示:

    <div>content element</div>
    <div class="accordionTrigger">
      <div><h1>title</h1></div>
      <div class="moreInfo">    
        <p>text</p>
        <p>text</p>
        <p>text</p>
        ...
      </div>
    </div>
    <div>content element</div>
    <div>content element</div>
Run Code Online (Sandbox Code Playgroud)

可以用jQuery完成吗?


如果我有多个<div class="accordionTrigger"></div>,像这样:

<div>content element</div>
<div class="accordionTrigger">
  <div><h1>title</h1></div>
  <p>text</p>
  <p>text</p>
  ...
</div>
<div>content element</div>
<div class="accordionTrigger">
  <div><h1>title</h1></div>
  <p>text</p>
  <p>text</p>
  ...
</div>
Run Code Online (Sandbox Code Playgroud)

结果将是:

<div>content element</div>
<div class="accordionTrigger">
  <div><h1>title</h1></div>
  <p>text</p>
  <p>text</p>
  <p>text</p>
  <p>text</p>
  ...
</div>
<div>content element</div>
<div class="accordionTrigger">
  <div><h1>title</h1></div>
</div>
Run Code Online (Sandbox Code Playgroud)

我可以避免吗?

Did*_*hys 34

检查.wrapAll()方法:

$('.accordionTrigger p').wrapAll('<div class="moreInfo"></div>');
Run Code Online (Sandbox Code Playgroud)

wrapAll()方法将所有匹配的元素包装到另一个元素中(与单独包装匹配元素的.wrap()方法相比)

DEMO