我正在尝试获取元素innerText
,但Chrome会返回一个空字符串,因为我的元素已隐藏。
Firefox没有。
即使元素不可见,有没有办法在Chrome中检索innerText
?
console.log(document.querySelector('div').innerText + ':' + document.querySelector('div').innerHTML);
div {
height: 0;
overflow: hidden;
}
<div>
Hello, I'm <strong>empty!</strong>
</div>
老实说,我真的很惊讶Chrome的行为是这样的,这是一个错误吗?
答案 0 :(得分:6)
您希望使用textContent
,因为它会从隐藏元素返回文本
document.querySelector('div').textContent
不同
TextContent
与innerText
...Internet Explorer介绍了
node.innerText
意图是类似的 但有以下不同之处:
textContent
获取所有元素的内容,包括<script>
和<style>
元素,innerText
没有。
innerText
了解风格 并且不会返回隐藏元素的文本,而textContent
将强>由于
innerText
知道CSS样式,它会触发回流, 而textContent
不会。
这不是Chrome错误,而是Firefox错误,innerText
不应返回隐藏元素的内容。
答案 1 :(得分:0)