为什么innerText 对不可见元素有效?它不应该

jsv
  • textContent获取所有元素的内容,包括<script><style>元素。相比之下,innerText只显示“人类可读”的元素。

  • textContent返回节点中的每个元素。相反,innerText知道样式并且不会返回“隐藏”元素的文本。

- https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent#differences_from_innertext

所以看起来innerText应该忽略不可见的元素,但实际上它没有。为什么?我好像误会了什么。

示例 1

const style = document.querySelector('style');

style.textContent = 'p { color: red; }'; // works
style.innerText = 'p { color: red; }';   // works. But why?

console.log(style.textContent); // works
console.log(style.innerText);   // works. But why?
html { font-family: sans-serif; }
<p>foo</p>

示例 2

const invisibleDiv = document.querySelector('div');
console.log(invisibleDiv.innerText); // works. But why?
<div style="display: none;">
  invisible div
</div>

巴马

差异仅适用于嵌套在元素内的元素,而不适用于元素的文本本身。

console.log("outer.textContent:", outer.textContent);
console.log("outer.innerText:", outer.innerText);
console.log("inner.textContent:", inner.textContent);
console.log("inner.innerText:", inner.innerText);
<div id="outer">This is visible <span id="inner" style="display: none;">This is invisible</span></div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么在我使用 for of 循环修改innerText 时span 元素的innerText 没有改变?

为什么html元素的innerText属性仅显示body元素的innerText?

为什么我更改目标按钮的 innerText 的函数会更改所有按钮的 innerText?

为什么我的函数返回零为什么它不应该在 R 中

为什么页面刷新时显示隐藏元素有效

为什么链表删除和插入操作有O(1)的复杂性?它不应该为O(n)的

为什么javascript代码改变了innerText,而页面却没有?

为什么不应该使用componentWillMount?

为什么不应该关闭UAC?

为什么write()在printf()之前执行?它不应该是顺序的吗?

Linux,spidev:为什么它不应该直接在devicetree中?

为什么这个 lua 函数正在修改它不应该修改的表?

为什么没有java.lang.Array类?如果java数组是一个Object,它不应该扩展Object吗?

为什么我不应该使用不可变的POJO而不是JavaBean?

不可见元素在不应该被悬停时徘徊

为什么没有立即收集“不可见”物体?

为什么短路评价工作的时候运算符优先级表示它不应该?

为什么tar存档占用1MB?它不应该只占用1KB吗?

为什么 AmazonSNSClientBuilder 的 withRegion() 不可见?

为什么输入的密码不可见?

java JMenuBar不可见?为什么?

为什么尽管显然不应该(也没有)终止该Java程序?

我的Mandelbrot看起来不应该。有人知道为什么吗?

为什么有人不应该在命令行中使用密码?

为什么默认情况下所有功能都不应该异步?

为什么Regexp有超时方法,而理论上却不应该?

为什么有的HTTP代理代码很复杂,不应该很简单吗?

CountDownTimer为什么不应该在应有的时候启动onTick?

为什么我的 gradle 构建中不应该有循环依赖?