问答详情
源自:9-15 替换元素节点replaceChild()

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

<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);
       }


提问者:紫陌东城 2018-01-31 18:24

个回答

  • 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