Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery - Insert a div between specific elements

HTML:

<div class="row">
   <div class="A"></div>
   <div class="B"></div>
   <div class="C"></div>
   <div class="D"></div>
</div>
<div class="row">
   <div class="A"></div>
   <div class="B"></div>
   <div class="C"></div>
   <div class="D"></div>
</div>

What I want to achieve:

<div class="row">
   <div class="newDiv">
      <div class="A"></div>
      <div class="B"></div>
      <div class="C"></div>
   </div>
   <div class="D"></div>
</div>
<div class="row">
   <div class="newDiv">
      <div class="A"></div>
      <div class="B"></div>
      <div class="C"></div>
   </div>
   <div class="D"></div>
</div>

I tried the next code, Include all in one, ok, but I can not take D out without duplicating content.

jQuery('.row').wrapInner('<div class="newDiv"></div>');

And it is impossible to add HTML without tags close alone.

jQuery('.A').before('<div class="newDiv">')
jQuery('.D').before('</div>')
like image 973
Thomas Goal Avatar asked Dec 07 '25 09:12

Thomas Goal


1 Answers

You can

1) iterate over each row

2) get all div element

3) select first three using .slice(0,3)

4) wrap using .wrapAll():

$('.row').each(function(){
   $(this).find("div").slice(0,3).wrapAll("<div class='newDiv'></div>");
});

Working Demo

like image 50
Milind Anantwar Avatar answered Dec 09 '25 23:12

Milind Anantwar



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!