Сортировка div
Всем добрый вечер.
Возникла проблема с написанием скрипта сортировки div-ов. Суть задачи: Например: Существуют дивы <div id="sortirovka"> <div id="id1"> <div id="id1-1">09:23.31.12.2011</div> Я контент </div> <div id="id2"> <div id="id2-1">12:45.30.12.2011</div> Я контент </div> <div id="id3"> <div id="id3-1">12:06.22.11.2011</div> Я контент </div> <div id="id4"> <div id="id4-1">11:21.29.12.2011</div> Я контент </div> <div id="id5"> <div id="id5-1">03:51.34.06.2010</div> Я контент </div> </div> Необходимо создать скрипт, который будет сортировать список по дате с " #id* "-ми От B до А (последние материалы вверху). Следовательно в результате должно получиться - <div id="sortirovka"> <div id="id1"> <div id="id1-1">09:23.31.12.2011</div> Я контент </div> <div id="id2"> <div id="id2-1">12:45.30.12.2011</div> Я контент </div> <div id="id4"> <div id="id4-1">11:21.29.12.2011</div> Я контент </div> <div id="id3"> <div id="id3-1">12:06.22.11.2011</div> Я контент </div> <div id="id5"> <div id="id5-1">03:51.34.06.2010</div> Я контент </div> </div> Заранее спасибо! :) |
42:06?
|
Ты нам задачу поставил?:blink: Кому тут
Цитата:
|
Aetae, опечатка..) Там "12".
Sweet, Нет. Я бы написал Суть Вашей задачи. Просто много времени на это потратил. Не получается заставить их сортироваться. |
Использовать id в данном случае неудобно, уникальная идентификация оправданна только если помимо сортировки с каждым конкретным элементом будут возможные ещё какие-либо действия.
Кстати уже набросал код, но бесплатно не отдам. *злобный раскатистый смех из-за монитора* Цитата:
|
Не лучше заменить div#id элементом time?
|
Aetae, в лс..
|
Цитата:
|
Да не, уже отдал на халяву.Я хоть и злой, но добрый.)
|
|
FINoM
К чему оно, чем те встроенный sort() не нра?) |
Цитата:
|
arr.sort(functon(obj,obj2){return obj.a.b.c-obj2.a.b.c})? |
Цитата:
Насколько кроссбраузерен этот метод? Как получить исходный массив? Только клонированием? Стыдно что я раньше о таком не знал, просто чудесный метод. x = document.getElementsByTagName('a'); a = Array.prototype.slice.call(x, 0); a.sort(function(n1, n2){ var h1 = n1.innerHTML, h2 = n2.innerHTML; return h1<h2 ? -1 : (h1>h2 ? 1 : 0)});Вот тебе и сортировка нод по какому-нибудь параметру. |
Вопрос:
>Хмм... А минус тут причем? Ответ: >http://javascript.ru/Array/sort - вот тут написано, что функция может возвращать 0, -1, 1, то есть по сути смотрится знак числа, не беря в расчет значение (грубо говоря, -1==-34, 1==7.53, 0==0)? >Насколько кроссбраузерен этот метод? Полностью) |
sort кстати не привязан к Array, его также можно напрямую применять к x.
Вообще чаще приходится юзать не sort(), а sort(function(a,b){return a-b}) ибо: arr=[ 111 , 222, 12 , 33, 444] alert('sort() : \n' + arr.sort()) alert('sort(function(a,b){return a-b}) : \n' + arr.sort(function(a,b){return a-b})) alert('sort(function(a,b){return b-a}) : \n' + arr.sort(function(a,b){return b-a})) |
Цитата:
Но только не в IE, там методы массивов нельзя применять к DOM-объектам, т.к. DOM там находится в стороне от JavaScript. Так что этот код тоже не будет работать Цитата:
|
Часовой пояс GMT +3, время: 23:40. |