在这里回答了同样的问题:
转贴:
在搜索了许多解决方案之后,我决定写一篇关于如何在 jquery 中排序的博客。总之,按数据属性对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="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>
]
让我们按数据顺序排序
函数 getSorted(selector, attrName) {
返回 $($(selector).toArray().sort(function(a, b){
var aVal = parseInt(a.getAttribute(attrName)),
bVal = parseInt(b.getAttribute(attrName));
返回 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() 是如何工作的。
希望这可以帮助!