2016-04-18 6 views
0

Мне нужно переупорядочить некоторые дочерние элементы с определенным классом и сохранить прежний порядок остальных, у которых нет класса. У меня есть другие элементы субОбратные дочерние элементы с jQuery

код - 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> 

код - Javascript

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

Результат

  • пункт 4
  • пункт 3
  • пункт 2
  • item 1
  • пункт 2.1
  • пункт 2.2
  • пункт 4.5
  • Пункт 5

Результат хотел

  • пункт 4
  • Пункт 3
  • пункт 2
    • пункт 2.1
    • Пункт 2,2
  • item 1
  • пункт 4.5
  • Пункт 5

Ps: Я должен поддерживать Структура html, такая как ссылки, атрибуты и т. д.

Любые подсказки? Благодаря!

Edit:

После @bubicsaszar ответа я понял, что мой вопрос был неполным, потому что мой список может иметь бесконечные списки к югу и их структура должна быть сохранена.

+0

Спасибо! Я не вижу его! Это сработало. –

ответ

1

попробовать это, если постоянные элементы всегда в конце списка:

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

У меня была проблема. На самом деле мой вопрос не был полным. Я отредактировал его. –

+0

Вы можете мне помочь? –

+1

В этом случае, я думаю, вам нужно изменить свою разметку (подкатегории должны быть внутри тегов li) https://jsfiddle.net/z4Lgqb0h/ – ltamajs

Смежные вопросы