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

var oldHTML=j.innerHTML;为什么这样写?可以直接用j=x这样获取的也是同样id,但是输出结果却不对

 <script type="text/javascript">

      function replaceMessage(){

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

        var oldHTML=j.innerHTML;//  j=x; 获取同样的id;结果输出不对

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

        j.parentNode.replaceChild(x,j);

        x.innerHTML=oldHTML;//  不理解这个地方  

       }    

  </script>

  能说说原因吗


提问者:listenlo 2016-04-28 10:03

个回答

  • majisong
    2016-04-28 15:46:44
    已采纳

    1.  当 oldnode 被替换时,所有与之相关的属性内容都将被移除。

      所以,需要将oldnode的里面的内容取出来,就是var oldHTML=j.innerHTML;

    2. 将oldnode的里面的内容取出来之后,给newnode使用,就是x.innerHTML=oldHTML;

    3. innerHTML在JS是双向功能:获取对象的内容或向对象插入内容;