Показать сообщение отдельно
  #17 (permalink)  
Старый 27.07.2016, 10:08
Аспирант
Отправить личное сообщение для gazman Посмотреть профиль Найти все сообщения от gazman
 
Регистрация: 02.09.2015
Сообщений: 38

спасибо
дорабатываю сортировку. хочу, чтобы в прямом и обратном направлении сортировало. Ваш код великолепно работает, но мне хочется научиться самому. я делаю проверку на наличие переменной, чтобы выбрать порядок сортировки. Но присутствует такой глюк. если я кликаю на один столбец, то сортирует в прямом порядке. а если сразу кликнуть на другой столбец, то сортируется предыдущий столбец в обратном порядке. нужно прогнать сортировку одного столбца туда и обратно, чтобы можно было сортировать другой.
var table = document.getElementById("sort");
var zag = document.getElementById("sort").rows[0].cells;
var stroke = document.getElementById("sort").rows;


function perebor(zg)
{	
	var up = 0;
	for (i=0; i<zg.length; i++)
	{
		zg[i].onclick = function ()
		{
			index = this.cellIndex;
			cellRezult = [];
			
			function comp(a, b) {
				b = +b[0] || b[0];
				a = +a[0] || a[0];
				if (a > b) return 1;
				if (a < b) return -1;
			}
			
			for (i=1; i<table.rows.length; i++)
			{
				cellRezult[i-1] = [];
				cellRezult[i-1][0] = table.rows[i].getElementsByTagName("td").item(index).textContent;
				cellRezult[i-1][1] = table.rows[i];
			}
			
			if (up == 0)
			{
				cellRezult.sort(comp);
				up = 1;
			}
			else 
			{
				cellRezult.reverse(comp);
				up = 0;
			}
			
			for (i=0; i<cellRezult.length; i++)
			{
				table.appendChild(cellRezult[i][1]);
			}
		}
	}
	
}

perebor(zag);
Ответить с цитированием