为什么浏览器将tbody元素插入表元素?

我正在玩弄一些使用原始html和jQuery的想法。 我做的一件事是创建一个包含一组行的表元素。

<table id="MyTable" > <tr> <td>Title</td> </tr> <tr> <td>1</td> </tr> <tr> <td>2</td> </tr> <tr> <td>3</td> </tr> <tr> <td>4</td> </tr> </table> 

但是,当我在FireFox + Firebug,IE8 Developer Toolbar或Google Chrome JavaScript Debugger中查看代码时,所有这些代码都显示出围绕所有tr节点的tbody元素。

我并不反对这种情况……但是这种标准的行为呢?

http://htmlhelp.com/reference/html40/tables/tbody.html

TBODY元素在表中定义一组数据行。 一个TABLE必须有一个或多个TBODY元素,它必须遵循可选的TFOOT。 TBODY结束标签始终是可选的。 当表格只包含一个TBODY而不包含THEAD或TFOOT时,开始标记是可选的。

所以总是有一个tbody(尽管有时候开始和结束标签可选和省略),而且你使用的工具在向你显示时是正确的。

另一方面,除非你明确地包含它们,否则它们是不存在的,如果你这样做的话,那么它也必须是明确的。

是的,tbody是指示桌子正文的标准元素。 不需要把它放在标记中,但是它将被包含在DOM中。