[英]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.