Javascript:: 第一个孩子的 textContent/innerText

Javascript:: textContent/innerText of firstChild

我的代码几乎可以解释我将要得到的内容:

<div id=player>
    <div class="button hand">&#9658;</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 值 &#9658;

此处需要进行一些小调整

试试这个:

var myPlayer=document.getElementById('player').firstElementChild;

问题是 #player 的第一个子节点本身就是一个文本节点。您正在寻找的是 #player.

的第一个 元素 子元素

小提示:IE8 不支持 firstElementChild

您有 idclass 可用,因此请使用 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];