我有4个div,我想根据 span 标记内的日期动态订购。我希望它从最新到最旧。使用JQuery实现这一目标的最佳方法是什么?
<div class="mydivs">Some description goes here <span>05/03/09</span></div>
<div class="mydivs">Some description goes here <span>01/15/11</span></div>
<div class="mydivs">Some description goes here <span>12/25/07</span></div>
<div class="mydivs">Some description goes here <span>09/25/11</span></div>
答案 0 :(得分:1)
See example of the following here →
var amd = [],
tDate, tElem;
$('.mydivs').each(function(i, elem) {
var aDate = $(this).children('span').text().split('/');
$(this).data('date', aDate[2] + aDate[1] + aDate[0]);
});
amd = $('.mydivs').map(function() {
return $(this).data('date');
}).get();
amd.sort();
while (amd.length) {
tDate = amd.pop();
tElem = $('.mydivs').filter(function() {
return $(this).data('date') == tDate;
}).detach();
$('#wrapper').append(tElem);
}
这很有趣!
答案 1 :(得分:0)
有this great plugin for Sorting Elements with jQuery。
或者你可以手工完成。手工完成会涉及到这样的事情:
var toSort = new Array();
$('div.mydivs').each(function (divIndex, divElement) {
toSort[$(divElement).first('span').text()] = $(divElement.html());
});
有了这个,你就拥有了所有div的哈希表,你可以对键进行排序,删除原始的div并按正确的顺序重新附加它们。