createTextNode 和 innerHTML 在以下代码中的区别?使用innerHTML实现不了

来源:9-15 替换元素节点replaceChild()

紫陌东城

2018-01-31 18:24

<div><b id="oldnode">JavaScript</b>是一个很常用的技术,为网页添加动态效果。</div>
  <a href="javascript:replaceMessage()"> 将加粗改为斜体</a>  
    <script type="text/javascript">
      function replaceMessage(){
          var newnode = document.createElement("i");
          var newnodeText = document.createTextNode("JavaScript");
	  newnode.appendChild(newnodeText);
          //newnode.innHTML = "JavaScript";
          //console.log(newnode);
          var oldnode = document.getElementById("oldnode");
	  oldnode.parentNode.replaceChild(newnode,oldnode);
       }


写回答 关注

3回答

  • qq_小緈運_0
    2018-05-05 17:07:59

    我试了用innerHTML是可以的

  • 慕容7479582
    2018-02-18 13:16:12

    用newnode.innerHTML="JavaScript"其实也是可以实现的。innerHTML和createTextNode都可以把一段内容添加到一个节点中,区别是如果这段内容中有html标签(如你的例子中的)时表现就不同了,在createTextNode中会当作文本处理,不会被浏览器解析

  • qq_袮D影孑_03909390
    2018-01-31 19:37:56

    createTextNode() 方法创建新的文本节点,而newnode.innHTML = "JavaScript";还是那个元素结点,只是值变成了 "JavaScript

    紫陌东城

    谢谢,但还是不太理解,newnode.innHTML = "JavaScript" ,JavaScript是存在DOM里的话,JavaScript就是i元素中的文本节点,上面的代码用innerHTML也应该能实现

    2018-02-01 10:08:08

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468195 学习 · 21891 问题

查看课程

相似问题