![](/img/trans.png)
[英]Javascript textContent (whitespace preserving innerText) for IE
[英]Javascript:: textContent/innerText of firstChild
我的代码几乎解释了我将要得到的东西:
<div id=player>
<div class="button hand">►</div>
<div class=time>00:00/02:25</div>
<div class="timeline hand"><span class="now hand"></span></div>
</div>
<script>
var myPlayer=document.getElementById('player').firstChild;
var playerStatus=(myPlayer.innerText||myPlayer.textContent);
console.log(playerStatus);
</script>
我期望得到ascii值►
在控制台上。
这里需要细微调整
尝试这个:
var myPlayer=document.getElementById('player').firstElementChild;
问题在于#player
的第一个孩子是文本节点本身。 您要查找的是#player
的第一个元素子#player
。
一个小小的注意事项: firstElementChild
不支持firstElementChild。
您可以同时使用id
和class
,因此请使用querySelector()
。
var myPlayer=document.querySelector('#player > .button.hand');
这也具有在IE8中工作的好处。
另外, innerText/textContent
的快捷方式是在脚本顶部进行检查,并将适当的密钥存储在字符串中。
var text = ("textContent" in document) ? "textContent" : "innerText";
然后在text
变量中使用方括号。
var myPlayer=document.querySelector('#player > .button.hand');
var playerStatus=(myPlayer[text]);
然后,您实际上可以像这样缩短它:
var playerStatus=document.querySelector('#player > .button.hand')[text];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.