2010-08-09 42 views
0

我遇到的問題是我需要將某些div分組在一起並重新排列它們,如果它是全部動畫,它將很酷。請看下面:jquery分類和順序=)

<div id="away">Some Content</div> 
<div id="online">Some Content</div> 
<div id="offline">Some Content</div> 
<div id="away">Some Content</div> 
<div id="online">Some Content</div> 
<div id="offline">Some Content</div> 
<div id="online">Some Content</div> 
<div id="online">Some Content</div> 
<div id="away">Some Content</div> 

所以我親切需要組ID的共同順序是: 1.online 2.away 3.offline

所以:

<div id="online">Some Content</div> 
<div id="online">Some Content</div> 
<div id="online">Some Content</div> 
<div id="online">Some Content</div> 
<div id="away">Some Content</div> 
<div id="away">Some Content</div> 
<div id="away">Some Content</div> 
<div id="offline">Some Content</div> 
<div id="offline">Some Content</div> 

我似乎無法讓我的頭圍繞這一個=(。

我在網站的其餘部分使用jquery。

任何想法=),乾杯,山姆牛逼

+0

雖然我展示瞭如何在下面執行此操作,但應儘可能以正確的順序從服務器生成它。 – 2010-08-09 14:41:24

回答

4

首先,讓我們擺脫這些ID的(ID必須是唯一的),並使用類有效的HTML,像這樣:

<div id="users"> 
    <div class="away">Some Content</div> 
    <div class="online">Some Content</div> 
    <div class="offline">Some Content</div> 
    <div class="away">Some Content</div> 
    <div class="online">Some Content</div> 
    <div class="offline">Some Content</div> 
    <div class="online">Some Content</div> 
    <div class="online">Some Content</div> 
    <div class="away">Some Content</div> 
</div> 

然後,你可以很容易地使用.appendTo(),這樣對它們進行排序:

var statusOrder = ["online", "away", "offline"]; 
for(var i=0; i<statusOrder.length; i++) { 
    $("#users ." + statusOrder[i]).appendTo("#users")​​​​​​​​​​​​​​​​​​​​​​​; 
} 

You can give it a try here,這是假定一個簡單的容器,像<div id="users"></div>解決此內容包裹...只是使用塞萊無論它們在哪個容器中都可以。

+0

OMG我沒有使用ID做我=ö....恥辱.... =)謝謝你,我會稍後嘗試=)。 – 2010-08-09 14:48:27

+0

這工作可愛謝謝=) – 2010-08-09 15:17:44

+0

@Sam - 歡迎:)請務必通過在旁邊的複選標記旁邊的複選標記接受關於此問題和未來問題的答案:) – 2010-08-09 17:18:32