小神班首页投稿(暂停使用,暂停投稿)

JavaScript中innerHTML和createTextN

2017-06-21  本文已影响40人  媛媛ing

从此踏上了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的方式。

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

上一篇 下一篇

猜你喜欢

热点阅读