我寫了一個函數,它應該按照價格高 - >低排序data-cost
數據屬性。當data-cost
都具有相同數量的數字時,它工作正常,但如果我添加具有不同數量的數字的data-cost
,則該功能不再有效。我想保持現在的結構,但由於我對JS還比較陌生,因此我開放給更多可重用的解決方案。預先感謝您的幫助。排序數據屬性
小提琴:
HTML:
<a id="sort" href="#">Price High to Low</a>
<ul class="returned-list">
<li data-cost="101">101</li>
<li data-cost="103">103</li>
<li data-cost="106">106</li>
<li data-cost="42">42</li>
</ul>
JS:
var sortHL = function() {
function compare(a,b) {
if (a.cost > b.cost)
return -1;
if (a.cost < b.cost)
return 1;
return 0;
}
var items = [];
$('.returned-list li').each(function() {
var item = {
cost: $(this).attr('data-cost'),
contents: $(this)[0].outerHTML
};
items.push(item);
});
items.sort(compare);
$('.returned-list').html('');
for(var i=0;i<items.length;i++) {
$('.returned-list').append(items[i].contents);
}
};
$('#sort').on('click', function() {
sortHL();
});
我覺得傻不是想這個。像魅力一樣工作,謝謝! – Dann 2014-12-04 20:16:48
@Dann歡迎您。 – Verhaeren 2014-12-04 21:47:23