我正在用Backbone.js开发应用程序,View类在渲染后返回一个元素。如果我使用div或span,这是可以的。但是当我开始将对象渲染为tr行时,问题就开始了。一个对象应该渲染为2-3行。那么我可以使用这种结构吗?
<table> <div> <tr>...</tr> <tr>...</tr> </div> </table>
ylamdve61#
紧接在table标记内的div无效。请改用tbody
gzszwxb42#
是的,这是一个非常糟糕的主意。HTML规范不允许div元素成为table元素的子元素,因此它会触发浏览器中的错误恢复例程。给定此输入:
<table> <tr><td>1</td></tr> <div> <tr><td>2</td></tr> <tr><td>3</td></tr> </div> <tr><td>4</td></tr> <div> <tr><td>5</td></tr> <tr><td>6</td></tr> </div>
Firefox将生成的DOM(您可以使用Inspect Element功能查看)如下所示:
<div> </div><div> </div><table> <tbody><tr><td>1</td></tr> <tr><td>2</td></tr> <tr><td>3</td></tr> <tr><td>4</td></tr> <tr><td>5</td></tr> <tr><td>6</td></tr> </tbody></table>
请注意,div元素已从表中删除并放置在表之前。这使得它们无法用于操作行。HTML提供了head、tfoot和tbody元素来对表格行进行分组。使用这些元素中的适当元素来代替div元素(您只能有一个head和一个tfoot,但对tbody元素的数量没有限制)。
bihw5rsg3#
这不是有效的HTML。您不能在表格中嵌套块元素或内联元素,只能嵌套表格元素,如<tbody>、<tr>或<thead>。当然,您可以在表格单元格中嵌套<div>(<td>或<th>)。
<tbody>
<tr>
<thead>
<div>
<td>
<th>
3条答案
按热度按时间ylamdve61#
紧接在table标记内的div无效。请改用tbody
gzszwxb42#
是的,这是一个非常糟糕的主意。
HTML规范不允许div元素成为table元素的子元素,因此它会触发浏览器中的错误恢复例程。
给定此输入:
Firefox将生成的DOM(您可以使用Inspect Element功能查看)如下所示:
请注意,div元素已从表中删除并放置在表之前。这使得它们无法用于操作行。
HTML提供了head、tfoot和tbody元素来对表格行进行分组。使用这些元素中的适当元素来代替div元素(您只能有一个head和一个tfoot,但对tbody元素的数量没有限制)。
bihw5rsg3#
这不是有效的HTML。您不能在表格中嵌套块元素或内联元素,只能嵌套表格元素,如
<tbody>
、<tr>
或<thead>
。当然,您可以在表格单元格中嵌套<div>
(<td>
或<th>
)。