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

replace()替换时新子节点的内容的创建方法

function replaceMessage(){
        var newnode = document.createElement("i");
        /*newnode.innerHTML=document.getElmentById("oldnode").innerHTML;*/
        var newnodeText = document.createTextNode("JavaScript");
        newnode.appendChild(newnodeText);
        var oldNode = document.getElementById("oldnode");
        oldNode.parentNode.replaceChild(newnode,oldNode);
 
      }

为什么替换时要创建一个文本节点,并将其插入到替换的节点后。我换种方法直接利用新节点的innerHTML属性设置设置文本内容不行?   

function replaceMessage(){
        var newnode = document.createElement("i");
        newnode.innerHTML=document.getElmentById("oldnode").innerHTML;
        /* var newnodeText = document.createTextNode("JavaScript");
        newnode.appendChild(newnodeText); */
        var oldNode = document.getElementById("oldnode");
        oldNode.parentNode.replaceChild(newnode,oldNode);
 
      }

而我在替换完成之后,又可以利用innerHTML改变内容了。

function replaceMessage(){
        var newnode = document.createElement("i");
        /* newnode.innerHTML=document.getElmentById("oldnode").innerHTML;
        var newnodeText = document.createTextNode("JavaScript");
        newnode.appendChild(newnodeText); */
        var oldNode = document.getElementById("oldnode");
        oldNode.parentNode.replaceChild(newnode,oldNode);
 
      }
      function replace(){
          var node = document.getElementsByTagName("i");
          node[0].innerHTML="JavaScript";
      }

这是怎么回事?


提问者:艾零 2017-07-26 10:09

个回答

  • 艾零
    2017-07-26 10:15:39

    function replaceMessage(){

             var newnode = document.createElement("i");

             newnode.innerHTML=document.getElementById("oldnode").innerHTML;

             var oldNode = document.getElementById("oldnode");

             oldNode.parentNode.replaceChild(newnode,oldNode); 

      

           } 

    我服了 慕课框架问题还是缓存机制问题 这又行了。