根据span元素中的日期对div进行排序

时间:2011-04-12 20:46:39

标签: jquery html

我有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>

2 个答案:

答案 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并按正确的顺序重新附加它们。