createTextNode和innerHTML區(qū)別?
答案的
? var newtext= document.createTextNode("PHP");?
? newnode.appendChild(newtext);?
這兩行代碼我發(fā)覺(jué)用
? newnode.innerHTML="PHP";
也能代替輸出,但有什么不同?應(yīng)該選用哪個(gè)才是正確的?
答案的
? var newtext= document.createTextNode("PHP");?
? newnode.appendChild(newtext);?
這兩行代碼我發(fā)覺(jué)用
? newnode.innerHTML="PHP";
也能代替輸出,但有什么不同?應(yīng)該選用哪個(gè)才是正確的?
2018-10-19
舉報(bào)
2019-08-20
createTextNode是創(chuàng)造一個(gè)文本節(jié)點(diǎn),然后添加這個(gè)文本節(jié)點(diǎn);
而底下的,是先創(chuàng)造節(jié)點(diǎn),再用innerHTML去獲取并改變,innerHTML能改變的不止文本節(jié)點(diǎn)。
官方:
innerHTML會(huì)將文本中包含的HTML代碼實(shí)現(xiàn)效果,而createTextNode只是純粹創(chuàng)造了文本節(jié)點(diǎn),
所以返回的效果也就是純文本內(nèi)容。如果僅僅是想添加文字,兩者都行,若是想添加包含html元素并要實(shí)現(xiàn)html效果,用innetHTML(也可以用dom方法:用createElement創(chuàng)建元素節(jié)點(diǎn),在這個(gè)節(jié)點(diǎn)下創(chuàng)建文本節(jié)點(diǎn),,這樣會(huì)比較麻煩)
2018-12-27
innerHTML可以用來(lái)獲取和更新文本及標(biāo)簽,但添加的標(biāo)簽如果缺失關(guān)閉標(biāo)簽,可能會(huì)影響整個(gè)頁(yè)面的設(shè)計(jì)。更壞的情況,使用innerHTML把用戶(hù)提供內(nèi)容添加到一個(gè)頁(yè)面上,他們可能會(huì)添加惡意內(nèi)容,如XSS攻擊。
而createTextNode則可以避免以上情況,如果想在DOM中添加一個(gè)空元素,可以跳過(guò)它,在createElemen()后直接appendChild()即可。
2018-10-22
innerHTML可以是一個(gè)dom,比如說(shuō)一個(gè)table,textNode只是一個(gè)文本節(jié)點(diǎn),顯然,文本節(jié)點(diǎn)要小于innerHTML
,比如說(shuō)body的innerHTML就是body下的所有