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

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

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>无标题文档</title>

</head>

<body>



  <div><b id="oldnode">JavaScript</b>是一个很常用的技术,为网页添加动态效果。</div>

  <a href="javascript:replaceMessage()"> 将加粗改为斜体</a>

  

    <script type="text/javascript">

     function replaceMessage(){

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

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

           oldnode.parentNode.replaceChild(newnode,oldnode);

           newnode.innerHTML=oldnode.innerHTML; 

           

}        

  </script>

  

 </body>

</html>


提问者:始终上路过 2016-12-22 17:04

个回答

  • 慕粉3909855
    2016-12-25 17:50:38
    已采纳

    var oldnode=document.getElementById("oldnode");这句话新建了一个存在于内存中的元素节点——oldnode,和id="oldnode"的元素节点b是不相干的,两者拥有独立的内存空间。

    oldnode.parentNode.replaceChild(newnode,oldnode);这句话删除的是元素节点b而非oldnode。

  • 始终上路过
    2016-12-23 15:32:36

    按说移除了 ,innerHTML 也没有了啊     事实有啊

  • 初级攻城狮
    2016-12-23 10:50:04

    是的,你可以不给他加innerHTML,你会发现他里面啥都没有