我有一个h2和一个段落。我想在h2之后添加一个div,但是我想要那个div中的ul和段落。 现在它看起来像这样:
<h2>test</h2>
<div id="test"></div>
<p>test</p>
<ul>
<li>testlijst</li>
</ul>
它必须是这样的:
<h2>test</h2>
<div id="test">
<p>test</p>
<ul>
<li>testlijst</li>
</ul>
</div>
我用过:
$('h2').after('<div id="test"></div>');
div必须放在h2之后并在内容之后或在下一个h2的开头结束,因为内容可能不同。
答案 0 :(得分:1)
您可以对h2
$('#faq h2').each(function() {
$(this).nextUntil('h2').wrapAll('<div id="test"></div>');
})
#test {
border: 1px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="faq">
<h2>test</h2>
<p>test</p>
<ul>
<li>testlijst</li>
</ul>
<h2>test</h2>
<p>test</p>
<ul>
<li>testlijst</li>
</ul>
<h2>test</h2>
<p>test</p>
<ul>
<li>testlijst</li>
</ul>
</div>
<h2>test2</h2>
<p>test</p>
<ul>
<li>testlijst</li>
</ul>
答案 1 :(得分:0)
试试这个:
var div = $('<div id="test"></div>');
div.append($('p')).append($('ul'));
$('h2').after(div);
答案 2 :(得分:0)
您可以使用jquery wrapAll函数。
$("p").next().andSelf().wrapAll('<div id="test" />');
答案 3 :(得分:0)
div将在h2之后放置并在内容之后或在下一个h2的开头结束
$('h2').nextUntil('h2').wrapAll('<div id="test"></div>');
答案 4 :(得分:0)
似乎是,你想要做的是:$('#test').append($('p,ul'))
jsfiddle here
这将移动
<p>test</p> and <ul><li>testlijst</li></ul>
到
<div id="test"></div>