Is it necessary to have Quoting the HTML 4 spec: "The TBODY start tag is always required except when the table contains only one table body and no table head or foot sections. The TBODY end tag may always be safely omitted." So, you must have a See also: MDN Dumb Guy gave an answer for HTML4 (yes). Arwym gives an answer for HTML5 to a related question (no): The tabular data spec for
HTML5
does not require them: Contexts in which this element ( Even though I believe it is a good practice to section your rows
within In the end, the browser will always add at least the Only if you define For the small fraction of your users still using IE7, you MUST add encapsulate your tr's in a tbody tag if you're building a table with the DOM methods! This will work in all major browsers: This will NOT work in IE7: A quick blog post of mine on building tables: It may be notable that I no longer make the effort to support IE7 on my own projects. The IE<=7 share is likely negligible for most sites at this point. Most browsers are forgiving but even so I add the pair in all tables that I use now. Even trivial tables. Especially now that I'm using CSS more and more to decorate those tables. All that being said I have old tables that still work fine on the newest browsers. I'm learning the hard way but taking the few extra Micro seconds to add the optional tags here and there ends up saving you money/time in the long run. Dave in every table? According to Standards.
<tbody>
tag if you have a <thead>
or <tfoot>
tr
) can be used:
thead
element.tbody
element.tfoot
element.table
element, after any caption
, colgroup
, and thead
elements, but only if there are no tbody
elements that are children of the table element.thead
, tbody
and tfoot
tags as it makes the table's rows
easier to identify.tbody
for you.thead
and tfoot
. It is mostly used when the table has multiple bodies of content. If the data in the table is easily understood to be the tbody
then you can safely omit it.var table = document.createElement('table');
var tbody = document.createElement('tbody');
var tr = document.createElement('tr');
tbody.appendChild(tr);
table.appendChild(tbody);
var table = document.createElement('table');
var tr = document.createElement('tr');
table.appendChild(tr);
http://blog.svidgen.com/2012/05/building-tables-in-ie7-with-javascript.html