2013-01-16 89 views
0

我有一個列表EG重新排序的有序列表與jQuery

<ol> 
    <li NumVotes="3">[Alot of HTML]</li> 
    <li NumVotes="2">[Alot of HTML]</li> 
    <li NumVotes="1">[Alot of HTML]</li> 
</ol> 

最初訂購它是好的(C#LINQ),我有一個JS過濾系統,讓你可以更改項目的顯示類型,所以我需要在過濾器更改後重新排列列表。我需要它很快,所以簡單地複製html()並不是一個真正的選擇。

我該如何做到這一點?

我看着可排序的插件,但似乎只是讓用戶拖動LIs。

+1

什麼地方錯了「圍繞複製HTML? 「另外,'NumVotes'不是有效的HTML ...你應該嘗試使用'data-numvotes'。 – Jason

+1

其有效的HTML5不是嗎? – Baconbeastnz

回答

2

一個簡單的排序算法將這樣的伎倆:

var myArray = $("ol li"); 

myArray.sort(function (a, b) { 

    a = parseInt($(a).attr("NumVotes"), 10); 
    b = parseInt($(b).attr("NumVotes"), 10); 

    if(a > b) { 
     return 1; 
    } else if(a < b) { 
     return -1; 
    } else { 
     return 0; 
    } 
}); 

$("#results").append(myArray); 

這裏提琴:http://jsfiddle.net/HU5ve/

如果性能是真的在這裏的一個問題用a.getAttribute()而不是jqueryish方式。我懷疑它會比這更好。

+0

Thankyou :)看起來不錯 – Baconbeastnz

+0

它實際上是複製一些html,但我認爲它應該是可以接受的,除非你有一個數千記錄的列表。 – povilasp