The problem is that you have invalid html without putting <tr>in <table>. The browser then rejects it and meets <td>that does not have a valid parent, and then meets <button>that does not have a valid parent and ends with <body>.
When you provide the wrong html markup, you get unexpected results.
<tr> <table></table> <tbody>, <thead> <tfoot> <table>
, , .
DEMO