 
			
				26.07.2017, 13:51
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от shoopik
			
		
	 | 
 
	
		для второй trs[1%5] = tr[0] - 
для третьей trs[2%5] = tr[0] -  
для четвертой trs[3%5] = tr[0] -  
для пятой trs[4%5] = tr[0] - 
для шестой trs[5%5] = tr[0] -
	 | 
 
	
 
 бред какой-то
 
alert(3%5)// 3 это 4 строка
  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.07.2017, 14:03
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 02.07.2017 
					
					
					
						Сообщений: 83
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	
		бред какой-то 
alert(3%5)// 3 это 4 строка
 
	 | 
 
	
 
 странно как-то, 3/5=0,ххх 
ну ладно я понял, спасибо ))  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.07.2017, 15:08
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 01.12.2016 
					
					
					
						Сообщений: 3,650
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от shoopik
			 
		
	 | 
 
	
		странно как-то, 3/5=0,ххх 
ну ладно я понял, спасибо ))
	 | 
 
	
 
 Это же не деление, а остаток от деления  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.07.2017, 15:26
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.10.2016 
					
					
					
						Сообщений: 1,013
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от LinaInverse
			 
		
	 | 
 
	| 
		Таблица может быть любого размера (но квадратная).
	 | 
 
	
 
 табличка квадратная, предлагаю не усложнять    
<!DOCTYPE HTML>
<html>
<head>
<title>title</title>
</head>
<body>
<table>
	<tr><td>1<td>2<td>3
	<tr><td>4<td>5<td>6
	<tr><td>7<td>8<td>9
</table>
<button>Клик</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
function swapContent(elem1, elem2) {
    var t = elem1.innerHTML;
    elem1.innerHTML = elem2.innerHTML;
    elem2.innerHTML = t;
}
function transp(table) {
    for (var i = 0, rows = table.rows, count = rows.length; i < count; ++i) {
        for (var j = i + 1; j < count; ++j) {
             swapContent(rows[i].cells[j], rows[j].cells[i]);
        }
    }
}
$('button').click(function(){
	$("table").each(function() { transp(this); });
});
</script>
</body>
</html>
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.07.2017, 16:44
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 02.07.2017 
					
					
					
						Сообщений: 83
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от j0hnik
			 
		
	 | 
 
	| 
		Это же не деление, а остаток от деления
	 | 
 
	
 
 ну так это понятно     вроде бы по правилам математики если делить  3 на 5, то будет меньше единицы, остатка то нет в любом случае  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.07.2017, 17:19
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Alexandroppolus
			
		
	 | 
 
	| 
		предлагаю не усложнять
	 | 
 
	
 
 если у вас есть решение для  любых прямоугольных вариантов, подскажите пожалуйста.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.07.2017, 19:13
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.10.2016 
					
					
					
						Сообщений: 1,013
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от рони
			 
		
	 | 
 
	| 
		если у вас есть решение для  любых прямоугольных вариантов, подскажите пожалуйста.
	 | 
 
	
 
 да в общем-то всё очевидно. Максимальный квадрат слева-сверху просто поворачиваем, для остального делаем перенос ячеек.
 
вот сие художество:
 
<!DOCTYPE HTML>
<html>
<head>
<title>title</title>
</head>
<body>
<table>
	<tr><td>1<td>2<td>3
	<tr><td>4<td>5<td>6
	<tr><td>7<td>8<td>9
	<tr><td>A<td>B<td>C
	<tr><td>D<td>E<td>F
</table>
<button>Клик</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
function swapContent(elem1, elem2) {
    var t = elem1.innerHTML;
    elem1.innerHTML = elem2.innerHTML;
    elem2.innerHTML = t;
}
function moveCells(table, b1, e1, b2, e2) {
    for (var i = b1; i >= e1; --i) {
        for (var j = b2; j < e2; ++j) {
            table.rows[i].appendChild(table.rows[j].lastChild);
        }
    }
}
function transp(table) {
    var h = table.rows.length;
    var w = h && table.rows[0].cells.length;
    if (!w) { return; }
    var min = Math.min(w, h), max = Math.max(w, h);
    // 1) поворачиваем квадратную часть таблицы
    for (var i = 0; i < min; ++i) {
        for (var j = i + 1; j < min; ++j) {
             swapContent(table.rows[i].cells[j], table.rows[j].cells[i]);
        }
    }
    if (w === h) { return; }
    if (w > h) {
        for (var i = min; i < max; ++i) {
            table.insertRow(i);
        }
        moveCells(table, max - 1, min, 0, min);
    } else {
        moveCells(table, min - 1, 0, min, max);
        for (var i = max - 1; i >= min; --i) {
            table.deleteRow(i);
        }
    }
}
$('button').click(function(){
	$("table").each(function() { transp(this); });
});
</script>
</body>
</html>
 
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.07.2017, 19:43
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Alexandroppolus, 
 спасибо, но это  
	
 
	| 
		
			Сообщение от nerv_
			
		
	 | 
 
	| 
		https://ru.wikipedia.org/wiki/Транспонированная_матрица
	 | 
 
	
 
 ищу другой вариант, не знаю как он называется, в минимальном исполнении (как не самое рациональное решение, можно посмотреть пост  №13) 
необходимый вариант
 
<h4>второй клик</h4>
<table>
  <tbody><tr><td>1</td><td>2</td><td>3
  </td></tr><tr><td>4</td><td>5</td><td>6
  </td></tr><tr><td>7</td><td>8</td><td>9
  </td></tr><tr><td>A</td><td>B</td><td>C
  </td></tr><tr><td>D</td><td>E</td><td>F
</td></tr></tbody></table>
<h4>первый клик</h4>
<table>
  <tbody><tr><td>1</td><td>6
  </td><td>B</td></tr><tr><td>2</td><td>7</td><td>C
  </td></tr><tr><td>3
  </td><td>8</td><td>D</td></tr><tr><td>4</td><td>9
  </td><td>E</td></tr><tr><td>5</td><td>A</td><td>F
</td></tr></tbody></table>
  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.07.2017, 22:49
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 01.12.2016 
					
					
					
						Сообщений: 3,650
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Рони, друг мой =)  
<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
</head>
<body>
<div>
<table>
  <tr><td>1<td>2<td>3
  <tr><td>4<td>5<td>6
  <tr><td>7<td>8<td>9
</table>
_______________________
<table>
  <tr><td>1<td>2<td>3
  <tr><td>4<td>5<td>6
</table>
</div>
<button>Клик</button>
 <script>
var div = document.querySelector("div").innerHTML, j = 0;
document.querySelector("button").onclick=()=>{
j++;
if(j%2) {
document.querySelectorAll("table").forEach(table=>{
var trs = table.querySelectorAll("tr"), t = trs.length;
var tds = table.querySelectorAll("td");
tds.forEach((td,i) => trs[i%t].append(td));
});
}
else document.querySelector("div").innerHTML=div;
};
 </script>
</body>
</html>
надуюсь такое хитровыисканное решение подойдет    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				26.07.2017, 23:00
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от j0hnik
			
		
	 | 
 
	| 
		надуюсь такое хитровыисканное решение подойдет
	 | 
 
	
 
 нет, нужна формула преобразования типа  
if(j%2) k= i%t; else k= abracadabra??? или какой танец с append/prepend  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |