nodeValue vs innerHTML和textContent如何選擇?
innerText根據(jù)caniuse的說法,直到fireFox45才在firefox中不存在,但現(xiàn)在所有主要瀏覽器都支持該功能。
解決方法我正在使用普通js來更改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快得多,那么有什么收獲呢?是否得到廣泛支持?還有其他問題嗎?
相關(guān)文章:
1. 哪位大神知道MySql怎么修改多行多列的數(shù)據(jù)?求指點(diǎn)2. 這是什么情況???3. 編輯管理員信息時(shí),為什么沒有修改過的內(nèi)容會(huì)為空?4. phpadmin的數(shù)據(jù)庫(kù),可以設(shè)置自動(dòng)變化時(shí)間的變量嗎?就是不需要接收時(shí)間數(shù)據(jù),自動(dòng)變化5. mysql - thinkphp5 在MAC電腦本地正常,部署LINUX服務(wù)器之后,模型不存在6. 老哥們求助啊7. mysql服務(wù)無(wú)法啟動(dòng)1067錯(cuò)誤,誰(shuí)知道正確的解決方法?8. PHP類封裝的插入數(shù)據(jù),總是插入不成功,返回false;9. APP上傳到電腦服務(wù)器,出現(xiàn)數(shù)據(jù)上傳不完整的問題10. 求救一下,用新版的phpstudy,數(shù)據(jù)庫(kù)過段時(shí)間會(huì)消失是什么情況?
