我的代码几乎可以解释我将要获得的内容:
<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值►
。
这里需要小调整
答案 0 :(得分:2)
试试这个:
var myPlayer=document.getElementById('player').firstElementChild;
问题是#player
的第一个孩子本身就是一个文本节点。你正在寻找的是#player
的第一个元素孩子。
次要说明:IE8不支持firstElementChild
- 。
答案 1 :(得分:2)
您同时拥有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];