检索隐藏元素

时间:2017-05-02 14:12:55

标签: javascript innertext

我正在尝试获取元素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的行为是这样的,这是一个错误吗?

https://jsfiddle.net/r8q2znc4/

2 个答案:

答案 0 :(得分:6)

您希望使用textContent,因为它会从隐藏元素返回文本

document.querySelector('div').textContent

documentation表示

  

TextContentinnerText ...

不同      

Internet Explorer介绍了node.innerText   意图是类似的   但有以下不同之处:

     

textContent获取所有元素的内容,包括<script>   和<style>元素,innerText没有。

     

innerText了解风格   并且不会返回隐藏元素的文本,而textContent   将

     

由于innerText知道CSS样式,它会触发回流,   而textContent不会。

这不是Chrome错误,而是Firefox错误,innerText不应返回隐藏元素的内容。

答案 1 :(得分:0)

innerText在所有浏览器上都是not well supported

以下是支持well innerText的浏览器。

enter image description here Screenshoted here