【发布时间】:2023-11-12 08:26:01
【问题描述】:
我对 javascript innerText 属性感到困惑。它究竟是如何工作的?
let h1 = document.querySelector('h1');
console.log('Confused', h1);
let h11 = document.querySelector('h1');
console.log('Confused', h11);
h1.innerText = 'Inserted';
console.log('Got it', h1);
- 我可以理解 h1 和 h2 都包含相同的节点,为什么在 h1 节点中插入文本会导致 h1 和 h11 都发生变化。
- 但我不明白为什么这个 h1 和 h11 都被插入到第 2 行和第 4 行(Markdown 在控制台中被混淆了)。虽然我在代码末尾插入了?
【问题讨论】:
-
感谢您的回答。但这不是我的问题。我的问题是我不明白为什么这个 h1 和 h11 都被插入到第 2 行和第 4 行(Markdown 在控制台内混淆)。虽然我在代码末尾插入了?
-
啊,是的,我很抱歉。我误解了你的问题。
-
从外观上看,至少在 Google Chrome 的实现中,console.log 被调用和执行之间似乎存在时间延迟。当我在超时(0 毫秒)内包装控制台日志时,我仍然得到“插入”。当我将超时设置为 50 毫秒时,它显示了原始的 h1。此外,当我使用 Chrome 的调试器一次执行每一行时,只有最后一个 console.log 显示“Inserted”
-
innerText 不是 javascript 属性,它是
HTMLElement对象属性 -
console.log中对象的输出不是静态的 - 当您检查内容时会对其进行评估...
标签: javascript html innertext