按照数据属性对jquery“类数组”对象进行排序的步骤:
- 通过jquery选择器选择所有对象
- 将其转换为实际的数组(而不是类数组的jquery对象)
- 对对象数组进行排序
- 使用dom对象数组将其转换回jquery对象
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="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>
]
按照data-order的值进行排序
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>
]
看看getSorted()如何工作。
希望这有所帮助!