在這裏回答了同樣的問題:
重新發布:
經過很多的解決方案,我決定在博客上寫下如何在jQuery的排序搜索後[1]。總之,通過數據屬性排序jquery「類數組」對象的步驟...
- 選擇經由jQuery選擇所有對象
- 轉換爲實際的陣列(未陣列狀jquery對象)
- 排序對象的數組
- 轉換回jquery對象與DOM對象的數組
的Html
<div class="item" data-order="2">2</div>
<div class="item" data-order="1">1</div>
<div class="item" data-order="4">4</div>
<div class="item" data-order="3">3</div>
平原jQuery選擇
> $('.item')
[<div class="item" data-order="2">2</div>,
<div class="item" data-order="1">1</div>,
<div class="item" data-order="4">4</div>,
<div class="item" data-order="3">3</div>
]
這個由數據順序
function getSorted(selector, attrName) {
return $($(selector).toArray().sort(function(a, b){
var aVal = parseInt(a.getAttribute(attrName)),
bVal = parseInt(b.getAttribute(attrName));
return aVal - bVal;
}));
}
> getSorted('.item', 'data-order')
[<div class="item" data-order="1">1</div>,
<div class="item" data-order="2">2</div>,
<div class="item" data-order="3">3</div>,
<div class="item" data-order="4">4</div>
]
希望這有助於排序讓!
[1] http://blog.troygrosfield.com/2014/04/25/jquery-sorting/
似乎不喜歡最後一行:return(contentA <> contentB)? 1:0; – TaylorMac 2011-05-26 05:00:02
這就是問題的「<>」 - 我認爲這是PHP「不等於」運算符。如果你想要更嚴格的檢查,你會希望使用JavaScript的等價物,即「!=」或「!==」。 請參閱http://www.devguru.com/technologies/ecmascript/quickref/comparison_operators.html瞭解兩者之間的區別。 – jszpila 2011-05-26 06:16:36
我編輯了代碼:) – 2011-05-26 07:45:40