I want to transpose the rows and columns in an HTML table, i.e. Rows as Columns, Columns as Rows.
In what way I can do it?
Example :
1 4 7 2 5 8 3 6 9
as
1 2 3 4 5 6 7 8 9
Get the array of tr s from tbody using . get() and use Array. reverse to reverse the elements and assign it back.
You have two options. Use an extra column in the header, and use <colspan> in your header to stretch a cell for two or more columns. Insert a <table> with 2 columns inside the td you want extra columns in.
http://jsfiddle.net/CsgK9/2/
html:
<table> <tr> <td>1</td> <td>4</td> <td>7</td> </tr> <tr> <td>2</td> <td>5</td> <td>8</td> </tr> <tr> <td>3</td> <td>6</td> <td>9</td> </tr> </table> <p><a href="#">Do it.</a></p>
js:
$("a").click(function(){ $("table").each(function() { var $this = $(this); var newrows = []; $this.find("tr").each(function(){ var i = 0; $(this).find("td").each(function(){ i++; if(newrows[i] === undefined) { newrows[i] = $("<tr></tr>"); } newrows[i].append($(this)); }); }); $this.find("tr").remove(); $.each(newrows, function(){ $this.append(this); }); }); return false; });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With