1

我的代码几乎可以解释我将要得到的东西:

<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>

我希望&#9658;在控制台上获得 ascii 值。

这里需要小调整

4

2 回答 2

3

尝试这个:

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

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

一个小提示:firstElementChild不支持 IE8-。

于 2015-04-23T21:08:47.640 回答
2

你有两个可用,所以id使用.classquerySelector()

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];
于 2015-04-23T21:14:40.220 回答