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

关于替换子节点

为什么不能直接获取父节点,通过父节点直接调用replaceChild方法,下面加粗的代码

<!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 p=document.getElementsByTagName("div");

          

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

          var t=document.createTextNode("JavaScript");

           

          newn.appendChild(t);

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

         

          p.replaceChild(newn,o); 

  

       }    

  </script>

  

 </body>

</html>


正在回答

2 回答

是可以的,不过需要将p.replaceChild(newn,o)更改为p[0].replaceChild(newn,o)。因为p现在得到的是一个数组,尽管只有一个div,可是它也是数组,所以需要用下标值找到它。

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

慕UI2261137 提问者

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

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

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

  

    <script type="text/javascript">

      function replaceMessage(){

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


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


        i.innerText=b.innerText;


        i.setAttribute("id","newnode");


        b.parentNode.replaceChild(i,b);


          

  

       }    

  </script>


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

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       469022    人
  • 解答问题       22582    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

关于替换子节点

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号