Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сортировка 
:(
    Опции темы
jmich
Дата 15.7.2008, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 18.2.2008

Репутация: нет
Всего: нет



Помогите, пожалуйста сделать сортировку (javascript).

Нужно чтобы сортировка выглядела так:
7 день
6 день
5 день
тд 
24 часа
23 часа
22 часа 
21 час 
и тд 

var reminderNode = document.createElement("option");
reminderNode.setAttribute("id", ""+value+"-"+unit);
reminderNode.setAttribute("value", value);
reminderNode.setAttribute("unit", unit);
reminderNode.appendChild(document.createTextNode(l abel)); 
//alert('adding ' + reminderNode.id)
availableRemindersToSubmit.unshift(reminderNode);
// COLLECTION PARENTE
Ids.dojo_byId(availableRemindersId).appendChild(re minderNode);

value -это цифры;
unit- это часы и дни 


Я начала делать так, но это только по value сортировка получается, а как добавить чтобы сортировка была по дням сначала, а потом по часам?
function sortDesc(n1, n2)

var v1 = n1.value; 
var v2 = n2.value;
return (v2-v1); 

}

PM MAIL   Вверх
IDVsbruck
Дата 15.7.2008, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 7
Всего: 22



А зачем сортировка, если вставлять можно уже по порядку?

Если очень нужно, то value можно называть по количеству часов - от 1 до 24 понятно, потом "48", "72" и т.д. - тогда сортировать будет как надо.
PM MAIL   Вверх
jmich
Дата 15.7.2008, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 18.2.2008

Репутация: нет
Всего: нет



сортировка нужна, тк у меня 2 контейнера, из одного в другой и обратно можно выбрать и передать все или некоторые данные. 
и сначала должны стоять дни, а потом часы 
PM MAIL   Вверх
IDVsbruck
Дата 15.7.2008, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 7
Всего: 22



Значит, подойдет второй вариант - при создании option задавай value по количеству часов, а при сортировке используй этот параметр.
PM MAIL   Вверх
jmich
Дата 15.7.2008, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 18.2.2008

Репутация: нет
Всего: нет



все же хотелось бы создать динамическую функцию и использовать ее. 
PM MAIL   Вверх
ksnk
Дата 15.7.2008, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Вообще-то есть функция sort у массива. Вот ей и пользоваться... Как нибудь так: 
Код

var values=[
'7 день'
,'6 день'
,'5 день'
,'тд '
,'24 часа'
,'23 часа'
,'22 часа' 
,'21 час' 
]

alert(
values.sort(function(a,b){
  var xa=a.match(/^(\d+)\s(...)/),xb=b.match(/^(\d+)\s(...)/);
  if(!xa && !xb)     return 0;
  if(!xa && xb)     return 1;
  if(xa && !xb)     return -1;
  if(xa[2] == xb[2]) 
    return xa[1]==xb[1]?0: parseInt(xa[1])>parseInt(xb[1])?-1:1;

  if(xa[2] == 'ден') return 1;
  if(xb[2] == 'ден') return -1;
  return 0;
})
)



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0658 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.