为了账号安全,请及时绑定邮箱和手机立即绑定

当 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>


正在回答

3 回答

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

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

0 回复 有任何疑惑可以回复我~
#1

始终上路过 提问者

非常感谢!
2016-12-25 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

始终上路过 提问者

按说移除了 ,innerHTML 也没有了啊 事实有啊
2016-12-23 回复 有任何疑惑可以回复我~
#2

初级攻城狮 回复 始终上路过 提问者

newnode.innerHTML=oldnode.innerHTML; 这句加上去了,你删了就没了
2016-12-23 回复 有任何疑惑可以回复我~
#3

初级攻城狮 回复 始终上路过 提问者

这么说,newnode.innerHTML=oldnode.innerHTML; 这个就相当于把之前节点的innerHTML重新给了现在节点的innerHTML,所以这时你看的是一样有innerHTML的,但其实在刚替换,没重新给之前,内容是没有的
2016-12-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信