Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2012, 13:18   #1
ACMILAN22
 
Регистрация: 22.09.2012
Сообщений: 3
По умолчанию Собственная сортировка таблицы

JavaScript
Добрый день. Я бы хотел спросить у вас как сделать java сортировку таблицы не в алфавитном порядке, а порядке который я сам хочу задать (опредленный список)

Последний раз редактировалось ACMILAN22; 22.09.2012 в 13:38.
ACMILAN22 вне форума Ответить с цитированием
Старый 22.09.2012, 17:14   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А как вообще ты сортировку делаешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.09.2012, 06:05   #3
ACMILAN22
 
Регистрация: 22.09.2012
Сообщений: 3
По умолчанию

Код:
-function(){
	
	var hc = function (s, c) {return (" " + s + " ").indexOf(" " + c + " ") !== -1},
	 ac = function (e, c) {var s = e.className; if (!hc(s, c)) e.className += " " + c};
	
	prepTabs = function (t){
		var el, th, ts = (t && t.className) ? [t] : document.getElementsByTagName("table")
		for (var e in ts) {
			el = ts[e]
			if (!hc(el.className, "sortable")) continue
			if (!el.tHead) {
				th = document.createElement("thead")
				th.appendChild(el.rows[0])
				el.appendChild(th)
			}
			th = el.tHead
			ac(th, "c_0_c")
			th.title = "Сортировать"
			th.onclick = clicktab
			el.sorted = NaN
			//reset
			el.tb = el.tBodies[0]
			el.tb_res = el.tb.cloneNode(true) 
			el.th_res = th.cloneNode(true) 
			el.a_color = 0 
		}
	}
	
	var clicktab = function (e) {
		e = e || window.event
		var obj = e.target || e.srcElement;
		while (!obj.tagName.match(/^(th|td)$/i)) obj = obj.parentNode
		var i = obj.cellIndex, t = obj.parentNode, cn = obj.className, verse = /d\_\d+\_d/.test(cn);
		while (!t.tagName.match(/^table$/i)) t = t.parentNode
		var j = 0, rows = t.tb.rows, l = rows.length, c, v, vi;
		
		if (e.ctrlKey) { /* reset */
			t.replaceChild(t.tb_res, t.tb); 
			t.replaceChild(t.th_res, t.tHead); 
			prepTabs(t); 
			return;
		}
		 
		if (i !== t.sorted) {
			if (t.a_color < 9) t.a_color++ 
			else t.a_color = 1
			t.sarr = []
			for (j; j < l; j++) {
				c = rows[j].cells[i]
				v = (c) ? (c.innerHTML.replace(/\<[^<>]+?\>/g, '')) : ''
				vi = Math.round(100 * parseFloat(v)).toString()
				if (isFinite(vi)) while (vi.length < 10) vi = '0' + vi
				else vi = v
				t.sarr[j] = [vi + (j/1000000000).toFixed(10), rows[j]]
				//c.innerHTML = t.sarr[j][0]
			}
		}
		t.sarr = (verse) ? t.sarr.reverse() : t.sarr.sort()
		t.sorted = i
		
		var dir = (verse) ? "u" : "d", new_cls = dir + "_" + t.a_color + "_" + dir,
		 a_re = /[cdu]\_\d+\_[cdu]/;
		if (a_re.test(cn)) obj.className = cn.replace(a_re, new_cls)
		else obj.className = new_cls
		for (j = 0; j < l; j++) t.tb.appendChild(t.sarr[j][1])
		obj.title = "Отсортировано по " + ((verse) ? "убыванию" : "возрастанию")
	}
	window.onload = prepTabs
}()
ACMILAN22 вне форума Ответить с цитированием
Старый 23.09.2012, 11:37   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ага. Стандартным сортом юзаешь
http://javascript.ru/Array/sort
Обрати внимание на возможность задавать ей параметр, который является функой сравнения.
Идея ферштейн?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка по нескольким столбцам таблицы. S_Yevgeniy Помощь студентам 3 27.07.2011 19:03
Сортировка таблицы и создание отчета mrKenai Microsoft Office Excel 5 21.03.2011 14:51
сортировка таблицы absbelii Microsoft Office Excel 10 28.02.2011 09:57
Сортировка таблицы (массива) Лесная Эльфийка Паскаль, Turbo Pascal, PascalABC.NET 0 26.12.2010 20:25
Сортировка таблицы по нескольким столбцам KobolD Помощь студентам 0 21.06.2010 17:21