2016-04-18 152 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結構,如鏈接,屬性等

任何線索?謝謝!

編輯:

@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