If i have this markup:
item 1
item 1>
function sortDates(a, b)
{
return new Date(b).getTime() - new Date(a).getTime();
}
var dates = [];
var _old;
$('p').each(function(){
_old = $(this).parent();
dates.push($(this).data('date'));
});
var sorted = dates.sort(sortDates);
var _new = $('').insertBefore(_old);
$.each(sorted,function(i,val){
$('p[data-date="' + val + '"]').appendTo(_new);
});
_old.remove();
Working demo: http://jsfiddle.net/AlienWebguy/JhgSw/