JavaScript-<td> 不是 <tr> 的子节点吗?

Cod*_*ker 0 html javascript dom

以下代码工作正常,我能够获取所选行的第一个单元格的值:

document.getElementById("tst").onclick = function() {
  var chosen = document.getElementsByClassName('selected');
  var myTd = chosen[0].getElementsByTagName('td');
  var rightCell = myTd[0];
  console.log(rightCell.innerHTML);
}
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html lang="en" dir="ltr">

<head>
  <meta charset="utf-8">
  <title>table_js_test002.html</title>
  <link href="css/test_table.css" rel="stylesheet">
</head>

<body>

  <table id="table">
    <tr>
      <td>1 Ferrari F138</td>
      <td>1 000€</td>
      <td>1 200€</td>

    </tr>
    <tr class="selected">
      <td>2 Ferrari F138</td>
      <td>1 000€</td>
      <td>1 200€</td>

    </tr>
    <tr>
      <td>3 Ferrari F138</td>
      <td>1 000€</td>
      <td>1 200€</td>

    </tr>
  </table>
  <input type="button" id="tst" value="OK" onclick="fnselect()" />


</body>

</html>
Run Code Online (Sandbox Code Playgroud)

这也有效:

var myTd = chosen[0].cells[0].innerHTML; 
Run Code Online (Sandbox Code Playgroud)

我的问题是,从我有限的JavaScript和DOM节点导航的理解,是不是<td>一个孩子<tr>?为什么我不能得到

var myTd = chosen[0].firstChild.innerHTML 
Run Code Online (Sandbox Code Playgroud)

上班?

Yaa*_*pan 5

每个MDN,当使用firstChild

任何空格都会创建一个#text节点,从单个空格到多个空格、回车、制表符等等。

只需使用firstElementChild

myTd = chosen[0].firstElementChild.innerHTML
Run Code Online (Sandbox Code Playgroud)