在div容器中,我想选择所有标题并将其内容分组,直到下一个标题为止。这些块应具有不同的背景色。
这是我在HTML中得到的:
<div class="container">
<h2></h2>
<p></p>
<p></p>
<ul></ul>
<h2></h2>
<p></p>
<p></p>
<p></p>
<h2></h2>
<p></p>
<p></p>
<p></p>
</div>
我需要的是:
<div class="container">
<div class="xy">
<h2></h2>
<p></p>
<p></p>
<ul></ul>
</div>
<div class="xy">
<h2></h2>
<p></p>
<p></p>
<p></p>
</div>
<div class="xy">
<h2></h2>
<p></p>
<p></p>
<p></p>
</div>
</div>
我尝试使用nextUntil(),但到目前为止,它对我而言仍然无效。
我将不胜感激任何帮助。
最好,罗宾
这可以解决问题:
$('.container h2').each(function() { //for each h2
$(this)
.nextUntil('h2') //get siblings until next h2, or all next siblings if no more h2
.addBack() //include current h2
.wrapAll('<div class="xy"/>'); //wrap it
});
$('pre').text($('.container').html()); //show it!
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<h2></h2>
<p></p>
<p></p>
<ul></ul>
<h2></h2>
<p></p>
<p></p>
<p></p>
<h2></h2>
<p></p>
<p></p>
<p></p>
</div>
<pre></pre>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句