2012-02-09 71 views
3

我是jquery的新手,我有一個包含多個無序列表的頁面ul。 我需要顛倒每個ul的順序,我看到了這個答案jQuery reversing the order of child elements 但它會混淆具有所有列表的所有項目。 我試圖改變代碼以適應我的需求,但它不會做我想要的,我可以訪問每個ul的每個li,但我不知道如何反轉li項目的順序。多ul反向訂單

我的代碼:

$(function() { 
    ul = $('ul'); // your parent element 
    ul.each(function(i,ul){ 
    $(this).children().each(function (i,li) { 
     alert(i);/*i got to do something here*/ 
    }); 
    }) 
}); 
+0

能否請您顯示您當前的HTML,你如何指望它結束了.... – ManseUK 2012-02-09 08:57:44

+0

請把你的代碼放在jsfiddle.net – Zakaria 2012-02-09 09:02:18

回答

5

這是當你有多個ul的:http://jsfiddle.net/dG373/4/

<ul> 
    <li>A</li> 
    <li>B</li> 
    <li>C</li> 
</ul> 
<ul> 
    <li>A</li> 
    <li>B</li> 
    <li>C</li> 
</ul> 

-

$('ul').each(function(){ 
    var ul = $(this); 
    ul.children().each(function(i, li){ 
     ul.prepend(li) 
    }); 
}); 
+0

謝謝!而已! – 2012-02-09 09:12:32

+0

點擊分數下方的「✓」標記標記爲答案) – Niklas 2012-02-09 10:32:48

+0

這是一個非常整潔的解決方案。謝謝 :) – Nick 2012-05-15 07:16:54

0

關閉我的頭頂:

1)選擇要扭轉(如$("div.myitems")

2的順序選擇項目)調用$.makeArray上的物品變成true數組。 3)調用javascript .reverse()方法反轉數組。

我從來沒有這樣做過,所以我不確定它是否會起作用,但它可能會給你一些建議!

1

您可以在DOM中移動的元素很容易,通過之前或其它之後將它們插入元素。當您在jQuery實例中獲取一組元素時(例如,使用$(...)),您將獲得一組靜態的以文檔順序匹配的元素。因此,扭轉他們在這一點上是剛通過匹配集循環和移動他們的事:

var list = $("selector_for_the_list"); 
var items = list.children(); 
var index; 
for (index = items.length - 1; index >= 0; --index) { 
    list.append(items[index]); 
} 

Live example