我有这个代码:
<div id="main-container">
<div class="comunicato-item">
<div class="item item-1">Marco</div>
<div class="item item-2">3</div>
<div class="item item-2">2012</div>
</div>
<div class="comunicato-item">
<div class="item item-1">Andrea</div>
<div class="item item-2">2</div>
<div class="item item-2">2013</div>
</div>
<div class="comunicato-item">
<div class="item item-1">Paul</div>
<div class="item item-2">9</div>
<div class="item item-2">2003</div>
</div>
</div>
由于(例如).item.item-2
元素值,我想订购 comunicato-item
商品。所以排序后的结果应该是:
<div id="main-container">
<div class="comunicato-item row">
<div class="item item-1">Andrea</div>
<div class="item item-2">2</div>
<div class="item item-2">2013</div>
</div>
<div class="comunicato-item row">
<div class="item item-1">Marco</div>
<div class="item item-2">3</div>
<div class="item item-2">2012</div>
</div>
<div class="comunicato-item row">
<div class="item item-1">Paul</div>
<div class="item item-2">9</div>
<div class="item item-2">2003</div>
</div>
</div>
用jquery可以吗?尝试过这样的事情:
var a = [];
$(".comunicato-item .item.item-2").each(function(i,e){
a.push(e);
});
$.each(a.sort(),function(i,e){
$("#"+e).appendTo('#main-container');
});
但是失败了!有什么想法吗?
最佳答案
你已经很接近了,但是排序方法需要一个函数来评估这个实例中的数组...
var a = [];
$(".comunicato-item").each(function() {
a.push(this);
});
a.sort(function(x, y) {
var xval = parseInt($(".item-2:first", x).text(), 10);
var yval = parseInt($(".item-2:first", y).text(), 10);
if (xval > yval) return 1;
else if (xval < yval) return -1;
else return 0;
});
$.each(a, function() {
$(this).appendTo('#main-container');
});
关于jquery - 如何根据内部元素的值订购商品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14606680/