为了账号安全,请及时绑定邮箱和手机立即绑定

createTextNode和innerHTML区别?

答案的

  var newtext= document.createTextNode("PHP"); 

  newnode.appendChild(newtext); 

这两行代码我发觉用

  newnode.innerHTML="PHP";

也能代替输出,但有什么不同?应该选用哪个才是正确的?

正在回答

3 回答

createTextNode是创造一个文本节点,然后添加这个文本节点;

而底下的,是先创造节点,再用innerHTML去获取并改变,innerHTML能改变的不止文本节点。

官方:

innerHTML会将文本中包含的HTML代码实现效果,而createTextNode只是纯粹创造了文本节点,

所以返回的效果也就是纯文本内容。如果仅仅是想添加文字,两者都行,若是想添加包含html元素并要实现html效果,用innetHTML(也可以用dom方法:用createElement创建元素节点,在这个节点下创建文本节点,,这样会比较麻烦)


0 回复 有任何疑惑可以回复我~

innerHTML可以用来获取和更新文本及标签,但添加的标签如果缺失关闭标签,可能会影响整个页面的设计。更坏的情况,使用innerHTML把用户提供内容添加到一个页面上,他们可能会添加恶意内容,如XSS攻击。

而createTextNode则可以避免以上情况,如果想在DOM中添加一个空元素,可以跳过它,在createElemen()后直接appendChild()即可。

3 回复 有任何疑惑可以回复我~

innerHTML可以是一个dom,比如说一个table,textNode只是一个文本节点,显然,文本节点要小于innerHTML

,比如说body的innerHTML就是body下的所有

2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

createTextNode和innerHTML区别?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信