在进行一些抓取工作时,我一直在Chrome DevTools检查器中遇到<tbody>
标记,但它没有出现在源代码中。对于我希望显而易见的原因,我发现这非常令人困惑。这里发生了什么? (我还应该补充一点,这个页面上的html格式错误了。)
例如,DevTools显示:
<table>
<tbody>
<tr valign="top">
<td>...</td>
页面来源显示:
<table border="0">
<tr valign="top">
<td>
答案 0 :(得分:1)
<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>
。