Paweł Burzyński
Paweł Burzyński

Reputation: 56

Use jQuery's .wrap all children above element

i have the following HTML:

<div class="main_container">
  <a href="#">Financial</a>
  <div class="sub_container">
    <a href="#">Financial services</a>
    <a href="#">Government</a>
  </div>
  <img class="image" src="img/img.png">
  <a href="#">Education</a>
  <div class="sub_container">
    <a href="#">Broadcast and media</a>
    <a href="#">Education</a>
  </div>
  <a href="#">Government</a>
  <div class="sub_container">
    <a href="#">Broadcast and media</a>
    <a href="#">Government</a>
  </div>
  <img class="image" src="img/img.png">
</div>

I.m trying to get wrap around all the elements above img tag, without results, i already try to use wrap, wrapAll, prevAll but those does not work.

Output code i'm trying to get:

<div class="main_container">

  <div class="WRAP_CONTAINER">
      <a href="#">Financial</a>
      <div class="sub_container">
        <a href="#">Financial services</a>
        <a href="#">Government</a>
      </div>
  </div>

  <img class="image" src="img/img.png">

  <div class="WRAP_CONTAINER">
      <a href="#">Education</a>
      <div class="sub_container">
        <a href="#">Broadcast and media</a>
        <a href="#">Education</a>
      </div>
      <a href="#">Government</a>
      <div class="sub_container">
        <a href="#">Broadcast and media</a>
        <a href="#">Government</a>
      </div>
  </div>

  <img class="image" src="img/img.png">
</div>

Please help, I'm starting to lose senses.

Upvotes: 1

Views: 179

Answers (1)

Ilia G
Ilia G

Reputation: 10221

this should do it

​$("img")​.each(function()
{
    $(this).prevUntil("img").wrapAll("<div class='WRAP_CONTAINER'></div>");
})​;​

Upvotes: 4

Related Questions