JavaScript中innerHTML和createTextNode的区别

从此踏上了HTML5的学习之路,今天敲代码,用到了createTextNode和innerHTML,发现他们在某些情况起的作用一样,所以就研究了一下他们的区别。innerHTML属于HTML Dom 而createTextNode属于XML Dom,虽然效果类似,都可以把一段内容添加到一个节点中,但是在某种情况下是有区别的,如下两段代码:

var p=document.createElement("p");

p.className="message";

p.innerHTML="<b> I love HTML5 </b>";

document.body.appendChild(p);

* * * * * * * * * * * * * * * * * * * * * * * * * * *

var p=document.createElement("p");

p.className="message";

var textnode=document.createTextNode("<b> I love HTML5 </b>");

p.appendChild(textnode);

document.body.appendChild(p);

注意:在第一种情况下呈现出的效果是加粗的文本内容

而在第二种情况下呈现出的效果是<b> I love HTML5 </b>原文本。

所以两者的区别在于,innerHTML会将文本中包含的HTML代码实现效果(如你的例子中<b>I love HTML5</b>会被加粗显示)。而createTextNode只是纯粹创造了文本节点,所以返回的效果也就是纯文本内容,不会被浏览器解析。

最后,如果你确定要插入的内容中没有html标签,可以用innerHTML,这样更简洁,但如果不能确定(比如要插入用户输入的内容)建议用createTextNode的方式。

我的文章很简单,不求打赏但求点赞,谢谢。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,967评论 0 8
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,290评论 1 92
  • 【转载】CSDN - 张林blog http://blog.csdn.net/XIAOZHUXMEN/articl...
    竿牍阅读 3,613评论 1 14
  • 一、样式篇 第1章 初识jQuery (1)环境搭建 进入官方网站获取最新的版本 http://jquery.co...
    凛0_0阅读 3,724评论 0 44
  • 前浪被后浪拍死在沙滩上的恐惧是怎样的,而今也算是体会到了。说来还不是事业线的事情,现在的一代小孩子懂事了就有智能手...
    Isayamayomi阅读 271评论 0 1

友情链接更多精彩内容