0

my product is listing like that

<div class="post-744"></div>
<div class="post-740"></div>
<div class="post-751"></div>
<div class="post-746"></div>
<div class="post-748"></div>

i want them to list like that

<div class="post-740"></div>
<div class="post-744"></div>
<div class="post-748"></div>
<div class="post-746"></div>
<div class="post-751"></div>

i tried this but isnt working

jQuery('.post-740').insertAfter('.post-744').insertAfter('.post-748').insertAfter('.post-746').insertAfter('.post-751');

1 Answers1

0

You are on the right track use after() instead of insertAfter().

jQuery('.post-740')
  .after($('.post-751'))
  .after($('.post-746'))
  .after($('.post-748'))
  .after($('.post-744'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<div class="post-744">744 - 2</div>
<div class="post-740">740 - 1</div>
<div class="post-751">751 - 5</div>
<div class="post-746">746 - 4</div>
<div class="post-748">748 - 3</div>

Using an array

var posts = ['.post-740', '.post-744','.post-748','.post-746','.post-751']

var topPost = jQuery(posts.shift())
while(posts.length) {
  topPost.after($(posts.pop()))
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<div class="post-744">744 - 2</div>
<div class="post-740">740 - 1</div>
<div class="post-751">751 - 5</div>
<div class="post-746">746 - 4</div>
<div class="post-748">748 - 3</div>
epascarello
  • 204,599
  • 20
  • 195
  • 236