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

时间:2009-06-02 06:00:06

标签: html xhtml

我正在玩一些使用原始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开发人员工具栏或Google Chrome JavaScript调试器中的代码时......所有这些代码都显示出 tbody 元素围绕着所有 tr 节点。

我并不反对这种情况......但这是标准行为吗?

2 个答案:

答案 0 :(得分:53)

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

  

TBODY元素定义表中的一组数据行。 TABLE必须具有一个或多个TBODY元素,这些元素必须遵循可选的TFOOT。 TBODY结束标记始终是可选的。当表只包含一个TBODY且没有THEAD或TFOOT时,start标签是可选的。

因此总会有一个tbody(虽然有时候开始和结束标签都是可选的并且省略了),并且你正在使用的工具在向你展示时是正确的。

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

答案 1 :(得分:13)

是的,tbody是表示表格主体的标准元素。它不需要将它放在标记中,但它将包含在DOM中,如您所见。