Renato Pirei
Renato Pirei

Reputation: 60

Reverse children elements with jQuery

I need to reorder some children elements with defined class and maintain the old order of the others that doesn't have the class. I have other sub elements

Code - html

<ul class="menu_dinamico">   
<li class="reverseMenu"><a href="#">Item 1</a></li>
 <li class="reverseMenu">Item 2</li>
      <ul>
      <li>item 2.1</li>
      <li>item 2.2</li>
        </ul>
 <li class="reverseMenu">Item 3</li>
 <li class="reverseMenu">Item 4</li>
 <li>Item 4.5</li>
 <li>Item 5</li> </ul>

Code - javascript

$.fn.reverse = [].reverse;
var list = $('.menu_dinamico');
var listItems = list.children('.reverseMenu');
list.prepend(listItems.get().reverse());

The result

The result wanted

P.s: I have to maintain the html structure like links, attributes etc.

Any clues? Thanks!

Edit:

After @bubicsaszar response I realized that my question was incomplete because my list can have infinite sub lists and their structure must be preserved.

Upvotes: 0

Views: 245

Answers (1)

ltamajs
ltamajs

Reputation: 1341

try this, if the constant items always in the end of the list:

$.fn.reverse = [].reverse;
var list = $('.menu_dinamico');
var listItems = list.children('.reverseMenu');
list.prepend(listItems.get().reverse());

Upvotes: 1

Related Questions