【问题标题】:Why do I not see HTML <h3> tags in console output when using innerHTML or innerText? [duplicate]为什么在使用 innerHTML 或 innerText 时在控制台输出中看不到 HTML <h3> 标签? [复制]
【发布时间】:2019-10-29 05:51:08
【问题描述】:

consoleOutputText = document.getElementById('phrase2').innerText
consoleOutputHTML = document.getElementById('phrase2').innerHTML

console.log(consoleOutputText)
console.log(consoleOutputHTML)
&lt;p id='phrase2'&gt;This **[&lt;h3&gt;statement&lt;/h3&gt;][1]** &lt;b&gt;populates&lt;/b&gt; in browser Console.&lt;/p&gt;

【问题讨论】:

标签: javascript html innerhtml getelementbyid


【解决方案1】:
  • &lt;h3&gt; 不能是 &lt;p&gt; 的后代。
  • 所以你的 HTML 不正确。
  • 所以你的浏览器改变了文档as per HTML5's rules for fixing broken, malformed and incorrect documents的结构:
  • 于是浏览器取出&lt;h3&gt;,将&lt;p&gt;一分为二。
  • 所以你的实际文档结构发生了变化……

    • ...从此(每个 DOM 节点,包括 #text 节点,都在自己的行上):

      <p id='phrase2'>
      This **[
      <h3>statement</h3>
      ][1]**
      <b>populates</b>
      in browser Console.
      </p>
      
    • 到这里(每个 DOM 节点,包括 #text 节点,都在自己的行上):

      <p id='phrase2'>This **[</p>
      <h3>statement</h3>
      "][1]**
      <b>populates</b> in browser Console.
      <p></p>
      
  • 因为&lt;h3&gt; 元素默认设置为块级元素,它会导致呈现页面内的换行。

  • 另外,不要使用innerText,而是使用textContent

【讨论】:

  • @SebastianSimon 正确 - 感谢您纠正我,我现在会更新我的答案。
猜你喜欢
  • 2021-05-22
  • 2023-03-23
  • 2022-01-22
  • 2014-01-22
  • 2014-11-20
  • 2020-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多