没有显示值的原因(DOM)

时间:2017-04-08 16:21:26

标签: javascript dom

我正在进入入门级javascript课程并正在研究我们的文档对象模型部分,我试图理解下面的脚本没有价值的原因,有人可以解释一下吗?

<!DOCTYPE html>
<html>

<body id="bdy">

  <h1 id="id00">Test 1</h1>
  <h1 id="id01">Test2</h1>
  <p id="id02"></p>

  <script>
    document.getElementById("id02").innerHTML = document.getElementById("bdy").childNodes[0].nodeValue;
  </script>

</body>

</html>

1 个答案:

答案 0 :(得分:1)

因为子节点不是您认为的那样。您需要跳过空的文本节点,并且您可能想要访问节点的textContent

在此处阅读更多内容:https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Whitespace_in_the_DOM

在这里:nodeValue vs innerHTML and textContent. How to choose?

for (var i = 0; i < document.getElementById("bdy").childNodes.length; i++) {
  console.log(i, document.getElementById("bdy").childNodes[i].textContent)
}
<body id="bdy">

  <h1 id="id00">Test 1</h1>
  <h1 id="id01">Test2</h1>
  <p id="id02"></p>
</body>

这可能是你的意思:

document.getElementById("id02").innerHTML = document.getElementById("bdy").children[0].textContent;
 
<body id="bdy">

  <h1 id="id00">Test 1</h1>
  <h1 id="id01">Test2</h1>
  <p id="id02"></p>
</body>