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