在做一些抓取工作时,我不断遇到 <tbody>
标记在 Chrome DevTools 检查器中,但它没有出现在源代码中。由于我希望是显而易见的原因,我发现这非常令人困惑。这里发生了什么? (我还应该补充一点,此页面上的 html 格式非常错误)。
例如,DevTools 显示:
<table>
<tbody>
<tr valign="top">
<td>...</td>
页面源显示:
<table border="0">
<tr valign="top">
<td>
最佳答案
<tbody>
的开始标签是可选的。也就是说,您可以将其省略,但浏览器会在需要时自动插入。
它是需要的,因为规则说你不能有 tr
直接在table
. table
的独生子元素可以是 caption
, colgroup
, thead
, tbody
和 tfoot
.
所以,如果浏览器遇到 tr
在tbody
之外, 它插入一个 tbody
哪个tr
将居住在。
有关更正式的说法,请参阅 http://www.w3.org/TR/html-markup/tbody.html
顺便说一下,其他开始标签也会发生同样的情况,比如 <body>
.如果你忽略它,写,比方说,<h1>
直接在 </head>
之后, 浏览器将插入隐含的 <body>
自动。
关于html - <tbody> 标签显示在 chrome 但不是源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34024136/