Javascript 如何将()所有元素包装在一个容器中,而不是每个元素中?

Javascript 如何将()所有元素包装在一个容器中,而不是每个元素中?,javascript,jquery,Javascript,Jquery,我有类似于以下内容的HTML: <fieldset> <legend>Title</legend> <p>blahblahblah</p> <p>blahblahblah</p> <p>blahblahblah</p> </fieldset> 标题 布拉布拉布拉赫 布拉布拉布拉赫 布拉布拉布拉赫 我要做的是将所有p包装到一个容器中,如下所示: &

我有类似于以下内容的HTML:

<fieldset>
   <legend>Title</legend>

   <p>blahblahblah</p>
   <p>blahblahblah</p>
   <p>blahblahblah</p>
</fieldset>

标题
布拉布拉布拉赫

布拉布拉布拉赫

布拉布拉布拉赫

我要做的是将所有p包装到一个容器中,如下所示:

<fieldset>
   <legend>Title</legend>

   <div class="container">
      <p>blahblahblah</p>
      <p>blahblahblah</p>
      <p>blahblahblah</p>
   </div>
</fieldset>

标题
布拉布拉布拉赫

布拉布拉布拉赫

布拉布拉布拉赫

以下是我当前的Javascript:

$(document).ready(function()
{
   $('fieldset legend').click(function()
   {
      $(this).siblings().wrap('<div class="container"></div>');
   });
});
$(文档).ready(函数()
{
$(“字段集图例”)。单击(函数()
{
$(this.sides().wrap(“”);
});
});
然而,这会导致每个p元素被包装在它自己的div.container中。像这样:

<fieldset>
   <legend>Title</legend>

   <div class="container"><p>blahblahblah</p></div>
   <div class="container"><p>blahblahblah</p></div>
   <div class="container"><p>blahblahblah</p></div>
</fieldset>

标题
布拉布拉布拉赫

布拉布拉布拉赫

布拉布拉布拉赫

有没有一种更简洁的方法来实现这一点,而不是使用以下方法:

$(document).ready(function()
{
   $('fieldset legend').click(function()
   {
      $(this).after('<div class="container"></div>');
      $(this).parent().append('</div>');
   });
});
$(文档).ready(函数()
{
$(“字段集图例”)。单击(函数()
{
$(本)。在('')之后;
$(this.parent().append(“”);
});
});
您可以使用wrapAll()方法

像这样

$("fieldset").children("p").wrapAll('<div class="container"></div>');
$(“字段集”).children(“p”).wrapAll(“”);

您也可以这样做

$('fieldset').find('p').wrapAll('<div class="container" />');
$('fieldset').find('p').wrapAll('');

祝你今天愉快

完全忘记了该功能:/Cheers。没有问题-如果回答了您的问题,请标记为正确:)Cheers