需要用jquery在包装器div中包装h3和div

时间:2011-05-23 21:21:08

标签: jquery dom

我有以下HTML:

<div class="accordion">
  <h3>My title</h3>
  <div>My content</div>
  <h3>My title</h3>
  <div>My content</div>
  <h3>My title</h3>
  <div>My content</div>
</div>

我需要通过jQuery做的是将每个h3和div包装在另一个div class =“myDiv”中,所以最终输出看起来像:

<div class="accordion">
  <div class="myDiv">
    <h3>My title</h3>
    <div>My content</div>
  </div>
  <div class="myDiv">
    <h3>My title</h3>
    <div>My content</div>
  </div>
  <div class="myDiv">
    <h3>My title</h3>
    <div>My content</div>
  </div>
</div>

我如何用jquery做到这一点?

2 个答案:

答案 0 :(得分:2)

试试这个:

$("h3").each(function(){
   $(this).next("div").andSelf().wrapAll("<div class='myDiv'></div>");
});

http://jsfiddle.net/BSQpf/

答案 1 :(得分:0)

这样的事情应该这样做:

$('.accordion h3').each(function() {
    $(this).nextUntil('h3').andSelf().wrapAll('<div class="myDiv"/>');
});

jsFiddle example

参见API: