Javascript 如何使用jQuery将各种元素包装在div标记中?
我的html结构如下所示: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>
<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('');”-谢谢,这正是我需要的。