Javascript 如何使用jQuery将各种元素包装在div标记中?

Javascript 如何使用jQuery将各种元素包装在div标记中?,javascript,jquery,html,wrapper,accordion,Javascript,Jquery,Html,Wrapper,Accordion,我的html结构如下所示: <h5>Title</h5> <p> Content </p> <ul> <li>Item</li> <li>Item</li> </ul> <p> Content </p> <h5>Title</h5> <p> Content </p> <ul>

我的html结构如下所示:

<h5>Title</h5>
<p> Content </p>
<ul>
    <li>Item</li>
    <li>Item</li>
</ul>
<p> Content </p>

<h5>Title</h5>
<p> Content </p>
<ul>
    <li>Item</li>
    <li>Item</li>
</ul>
<p> Content </p>
<h5>Title</h5>
<div>
    <p> Content </p>
    <ul>
        <li>Item</li>
        <li>Item</li>
    </ul>
    <p> Content </p>
</div>
标题
内容

  • 项目
  • 项目
内容

标题 内容

  • 项目
  • 项目
内容

总之,它只是一些标题下的内容,我只需要div中标题标记下的所有内容,如下所示:

<h5>Title</h5>
<p> Content </p>
<ul>
    <li>Item</li>
    <li>Item</li>
</ul>
<p> Content </p>

<h5>Title</h5>
<p> Content </p>
<ul>
    <li>Item</li>
    <li>Item</li>
</ul>
<p> Content </p>
<h5>Title</h5>
<div>
    <p> Content </p>
    <ul>
        <li>Item</li>
        <li>Item</li>
    </ul>
    <p> Content </p>
</div>
标题
内容

  • 项目
  • 项目
内容

我曾尝试使用jQuery的
.wrap
功能,但没有成功,因为在标题标记下面可能有多个类型元素,我发现了一个问题:它非常相似,但无法满足我的需要,有人能帮我吗


提前谢谢

我只需在h5之后的页面中插入一个div,然后手动将元素插入其中

假设所有东西都在某个东西里面,比如body标签(未测试!):


标题
内容

  • 项目
  • 项目
内容

var children=$(document.body).children(), $child $div; for(var x=0,child;child=children[x++];){ $child=$(child); 如果($child.is('h5')){ $div=$('')。在($child)之后; }否则{ $child.appendTo($div); } }
试试这个

var $div;
$("h5").each(function(){
  $div = $("<div />");

  if($(this).nextAll("h5").length){
   $(this).after($div.append($(this).nextUntil("h5")));
  }
  else{
    $(this).after($div.append($(this).siblings()));
  }

});
var$div;
$(“h5”)。每个(函数(){
$div=$(“”);
如果($(此).nextAll(“h5”).长度){
$(this).after($div.append($(this.nextUntil(“h5”)));
}
否则{
$(this.after($div.append($(this.sides()));
}
});
执行以下操作:

$(document).ready(function () {
    $('h5').each(function () {
        $(this).nextUntil('h5').wrapAll('<div class="box"></div>');
    })
})
$(文档).ready(函数(){
$('h5')。每个(函数(){
$(this.nextUntil('h5').wrapAll('');
})
})
您可以尝试以下方法:

$(函数(){
$('h5')。每个(功能(即,e){
$(e).nextUntil('h5').wrapAll('');
});
});

从来都不知道nextUntil函数,亲爱的,如果你想包含标题,请添加“.andSelf()”,因此第3行变成“$(e).nextUntil('h5').andSelf().wrapAll('');”-谢谢,这正是我需要的。