求大神 我这个改斜体的木有反应啊 咋回事啊

来源:9-15 替换元素节点replaceChild()

绝不轻易狗带

2016-08-08 11:35

      function replaceMessage(){
          var italic = document.createElement("i");
          var testdiv = document.getElementsByTagName("div");
          testdiv.appendChild(italic);
           var oldnode = document.getElementById("oldnode");
           testdiv.replaceChild(italic,oldnode);
           
       }

就是添加一个i 节点啊 然后用这个new的i节点 替换b节点嘛 

咋一点反应都没有 。。。

写回答 关注

3回答

  • 小瓶绿芬达
    2016-08-09 22:54:14

    当 oldnode 被替换时,所有与之相关的属性内容都将被移除。所以文本Javascript消失。

        你整个过程把HTML变成了    : 

    <div>
        <i></i>(←testdiv.appendChild(italic添加造成); 
            <i></i>(←testdiv.replaceChild(italic,oldnode替换造成);
            是一个很常用的技术,为网页添加动态效果
    </div>

    个人见解,有错清指出谢谢

  • 有花不见叶
    2016-08-08 16:01:57

    我觉得,首先只有父结点才能调用  replaceChild(newnode,oldnode).这个方法,所以说在使用替换这一方法时,不要直接获取父辈div,应使用父节点.还有替换i标签应该赋予内容。

    function replaceMessage(){
              var italic = document.createElement("i");
              var oldnode = document.getElementById("oldnode");
              var newnodeText=document.createTextNode("JavaScript");
               italic.appendChild(newnodeText);
               oldnode.parentNode.replaceChild(italic,oldnode);
               
           }

  • 小浩233
    2016-08-08 13:34:26

    function replaceMessage(){

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

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

              newnode.innerHTML=oldnode.innerHTML;

              oldnode.parentNode.replaceChild(newnode,oldnode);

           }   

    你改成这样试试。个人意见。

JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题