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

关于代码问题

<body>


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

为什么这么写,不对

提问者:heart_zh 2017-09-21 22:15

个回答

  • 爱上慕婉清6262634
    2017-09-26 17:30:50

    其实你可以把替换看成是先移除在添加的过程,元素本身可移除本身,也可以本身为基准添加其他元素,但是连在一块,移除本身之后,添加新元素没有基准,新元素没法添加,所以用parentNode,即父级为基准来进行替换操作

  • 慕粉欧拉
    2017-09-22 11:07:16

    oldnode.innerHTML = "java";   这个是修改字串符吧?


     var newnode=document.createElement("i");
     var oldnode=document.getElementById("oldnode");
     oldnode.innerHTML = "java";
     newnode.innerHTML = olinode.innerHTML;
     oldnode.replaceChild(newnode,oldnode);


     var newnode=document.createElement("i");
     var oldnode=document.getElementById("oldnode");
     oldnode.innerHTML = "java";


  • 作孽的赌徒_
    2017-09-22 10:55:27

    在oldnode.replaceChild(newnode,oldnode);的第一个oldnode.后面加一个parentNode.