nodeValue vs innerHTML和textContent如何選擇?
innerText根據(jù)caniuse的說(shuō)法,直到fireFox45才在firefox中不存在,但現(xiàn)在所有主要瀏覽器都支持該功能。
解決方法我正在使用普通js來(lái)更改label元素的內(nèi)部文本,但是我不確定應(yīng)該基于什么理由使用innerHTML或nodeValue或textContent。我不需要?jiǎng)?chuàng)建新節(jié)點(diǎn)或更改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測(cè)試表明firstChild.nodeValue明顯更快。至少這就是我的解釋。
如果firstChild.nodeValue快得多,那么有什么收獲呢?是否得到廣泛支持?還有其他問(wèn)題嗎?
相關(guān)文章:
1. angular.js - webpack build后的angularjs路由跳轉(zhuǎn)問(wèn)題2. java - web項(xiàng)目中,用戶(hù)登陸信息存儲(chǔ)在session中好 還是cookie中好,取決于什么?3. java - Activity中的成員變量被賦值之后,Activity被回收的時(shí)候內(nèi)存才會(huì)被釋放嗎4. Discuz! Q 有人用過(guò)嗎?5. 數(shù)組按鍵值封裝!6. 我寫(xiě)的哪里有錯(cuò)?請(qǐng)大神幫忙查看一下。7. 請(qǐng)求一個(gè)數(shù)據(jù)返回內(nèi)容為空或者錯(cuò)誤如何再次請(qǐng)求幾次8. 使用list和each配合,的作業(yè),輸出一行后,如何換行9. php由5.3升級(jí)到5.6后,登錄網(wǎng)站,返回的是php代碼,不是登錄界面,各位大神有知道的嗎?10. 為什么bindClass訪(fǎng)問(wèn)不了的?
