У меня есть скрипт, который создает много дивы с атрибутом data-date
и имеет формат времени Tue Aug 16 2016 12:27:21 GMT+0100 (BST)
Сортировать дивы по дате/времени с JS
может быть Пример набора:
<div class="socialBox" data-date="Tue Aug 10 2016 12:30:21 GMT+0100 (BST)" data-type="twitter">
<div class="socialBox" data-date="Tue Aug 14 2016 12:10:21 GMT+0100 (BST)" data-type="facebook">
<div class="socialBox" data-date="Tue Aug 13 2016 15:27:21 GMT+0100 (BST)" data-type="youtube">
<div class="socialBox" data-date="Tue Aug 03 2016 18:27:21 GMT+0100 (BST)" data-type="instagram">
Дивы добавляются в пустой div из множества различных функций, а затем я запускаю JS для сортировки div и добавляет его в исходный пустой div, но я не могу заставить его работать.
Вот сценарий
loadTwitter(twitter);
loadFacebook(facebook);
loadYoutube(youtube);
loadInstagram(instagram);
// DOESN'T WORK YET (THE BELOW)
var board = $("#social-board");
var boards = board.children('.socialBox');
boards.sort(function(a, b) {
var an = $(a).data("date").getTime();
var bn = $(b).data("date").getTime();
if(an > bn) {
return 1;
}
if(an < bn) {
return -1;
}
return 0;
});
boards.detach().appendTo(board);
Может кто-нибудь помочь мне? Я не уверен, что его добавление к элементу div
или к функции сортировки JS.
Примечание: все эти сравнения могут быть преобразованы в 'return $ (a) .data (" date ") - $ (b) .data (" date ");' if '.data (" date ")' возвращает экземпляр 'Date' (как кажется), потому что A) Оператор' -' будет принуждать даты к цифрам, что эквивалентно вызову 'getTime' и B) Вам не нужно специально возвращать -1, 1 и 0; любое отрицательное или положительное число отлично подходит для первых двух. –