nodeValue vs innerHTML和textContent如何選擇?
innerText根據(jù)caniuse的說法,直到fireFox45才在firefox中不存在,但現(xiàn)在所有主要瀏覽器都支持該功能。
解決方法我正在使用普通js來更改label元素的內(nèi)部文本,但是我不確定應該基于什么理由使用innerHTML或nodeValue或textContent。我不需要創(chuàng)建新節(jié)點或更改HTML元素或其他任何內(nèi)容,只需替換文本即可。這是代碼示例:
var myLabel = document.getElementById('#someLabel');myLabel.innerHTML = 'Some new label text!'; // this worksmyLabel.firstChild.nodeValue = 'Some new label text!'; // this also works.myLabel.textContent = 'Some new label text!'; // this also works.
我瀏覽了jQuery源,它只使用一次nodeValue,但是多次使用innerHTML和textContent。然后,我發(fā)現(xiàn)此jsperf測試表明firstChild.nodeValue明顯更快。至少這就是我的解釋。
如果firstChild.nodeValue快得多,那么有什么收獲呢?是否得到廣泛支持?還有其他問題嗎?
相關文章:
1. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?2. angular.js - angularjs如何傳遞id給另一個視圖 根據(jù)id獲取json數(shù)據(jù)?3. 數(shù)據(jù)庫無法進入4. 使用text-shadow可以給圖片加陰影嗎?5. mysql - 記得以前在哪里看過一個估算時間的網(wǎng)站6. docker-compose 為何找不到配置文件?7. 請問一下各位老鳥 我一直在學習獨孤九賤 現(xiàn)在是在tp5 今天發(fā)現(xiàn) 這個系列視頻沒有實戰(zhàn)8. select - mysql怎么搜索一個字符串指定位置之后兩位9. python - linux怎么在每天的凌晨2點執(zhí)行一次這個log.py文件10. boot2docker無法啟動
