没有父表标签的 td

vus*_*san 3 html javascript css html-table

HTML:

<td class="tabletd"> text one </td><br>
<td class="tabletd" id="tdSecond"> this is next td</td>
<button onclick="myFunc()">click</button>
Run Code Online (Sandbox Code Playgroud)

JS:

function myFunc() {
    var second    = document.getElementById('tdSecond').innerHTML;
    //var second2 = document.getElementsByTagName('td')[1]; //gives error undefined
    alert(second);
}
Run Code Online (Sandbox Code Playgroud)

我无法完成这项工作。连css都没有效果见JSFiddle
但是如果我们在<li>没有其父的情况下使用 javascript 和 css 都可以正常工作<ul>
而且 javascript 和 css 在自定义标签上也能正常工作。例如:-<ddd> text </ddd>

那么为什么如果我们在<td>没有父级的情况下使用 css 和 javascript 都会出错<table>呢?

Cal*_*vin 5

这将解释为什么<li>项目可以没有<ul>
http://www.whatwg.org/specs/web-apps/current-work/multipage/grouping-content.html#the-li-element

li 元素表示一个列表项。如果其父元素是 ol、ul 或 menu 元素,则该元素是为这些元素定义的父元素列表中的一项。否则,列表项与任何其他 li 元素都没有定义的列表相关关系。

如果父元素是 ol 元素,则 li 元素具有序数值。

<ul>只是为了将相似的<li>项目分组。没有<ul>,a<li>只是一个单独的列表项,没有任何分组。因此,<li>没有 a<ul>仍然是解析器将通过的有效标记。


<td><tr>元素特别必须驻留在一个<table>元素中。 http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#the-td-element

这是解析器形成表格的方式,如果<td>没有 a<table>将引发表格模型错误:http :
//www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#table -模型

这个测试表明:

<!-- fail -->
<tr>
  <td>tr_td_test</td>
</tr>

<!-- fail -->
<td>td_test</td>

<!-- pass as a regular list item -->
<li>li_test</li>

<!-- pass and tr tag is added to DOM -->
<table>
  <td>table_td_test 1</td>
</table>

<!-- pass and td tag is added to DOM -->
<table>
  <tr>
    table_tr_test_1
  </tr>
</table> 
Run Code Online (Sandbox Code Playgroud)