Reputation: 177
I have some problem splitting a table with jQuery.
This is the table:
<table width="100%" id="submenu">
<tr>
<td class="submenu">A</td>
<td class="submenu">B</td>
<td class="submenu">C</td>
<td class="submenu">D</td>
<td class="submenu">E</td>
<td class="submenu">F</td>
<td class="submenu">G</td>
<td class="submenu">H</td>
</tr>
</table>
I want to make it look like this after I call a function:
<table width="100%" id="submenu">
<tr>
<td class="submenu">A</td>
<td class="submenu">B</td>
<td class="submenu">C</td>
<td class="submenu">D</td>
</tr>
<tr>
<td class="submenu">E</td>
<td class="submenu">F</td>
<td class="submenu">G</td>
<td class="submenu">H</td>
</tr>
</table>
I have tried with:
$(function(){
$('.submenu td:eq(3)').after('</tr><tr>');
});
Upvotes: 3
Views: 3635
Reputation: 618
This code solve the problem of yours.
$(document).ready(function(){
$("table tr td:nth-child(5n)").addClass('break');
var boundary = $("td.break");
$("<tr>").insertAfter(boundary.parent()).append(boundary.nextAll().andSelf());
});
Upvotes: 0
Reputation: 43033
Try this snippet instead:
$(function(){
// # Add a new row after the first one in the table
$('table#submenu tr:first').after('<tr></tr>');
// # Move the four last TDs to this new row
$('table#submenu tr:first td.submenu:gt(3)') // Select the four last TDs
.detach() // Detach them from their current row
.appendTo('table#submenu tr:nth-child(2)'); // Add them at the end of the new row
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<table width="100%" id="submenu" border="1">
<tr>
<td class="submenu">A</td>
<td class="submenu">B</td>
<td class="submenu">C</td>
<td class="submenu">D</td>
<td class="submenu">E</td>
<td class="submenu">F</td>
<td class="submenu">G</td>
<td class="submenu">H</td>
</tr>
</table>
Upvotes: 3
Reputation: 966
<script>
$(".submenu td:nth-child(4)" ).after( "</tr><tr>" );
</script>
This will work.
Upvotes: 0