问答详情
源自: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") ;

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

    newNode.appendChild(newNodeTXT);

    var Otext=document.getElementsByTagName("div");

    var oNode=Otext.firstChild;

    

Otext.replaceChild(oNode,newNode);    

       }    

  </script>

  

 </body>


提问者:慕鱼树 2018-11-14 00:15

个回答

  • 慕移动0851642
    2018-11-15 03:05:53


    <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 newNodeTXT=document.createTextNode("JavaScript");

        newNode.appendChild(newNodeTXT);

        var Otext=document.getElementsByTagName("div")[0];     //这里用标签名获取的是一个数组,注意这                                                                                                        //Elements,复数标签的意思,这个数组下标从0                                                                                             //开始,这里要取的也是第0个标签(就是第一个)

        var oNode=Otext.firstChild;

        

    Otext.replaceChild(newNode,oNode);                            //然后是这个函数你写反了,第一个参数是新节点,                                                                                           //第二个参数才是是旧节点

           }    

      </script>

      

     </body>


  • weibo_慕丝3052053
    2018-11-14 17:29:47

    Otext是个长度为0的数组,可以console.log一下查看,所以oNode=Otext[0].firstChild,替换的话,需要在b标签的上一级中把b标签换成i标签


  • weibo_慕丝3052053
    2018-11-14 17:25:55

    <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 newNodeTXT=document.createTextNode("JavaScript"); 

            newNode.appendChild(newNodeTXT);


            var Otext=document.getElementsByTagName("div");

            var oNode=Otext[0].firstChild;        


            oNode.parentNode.replaceChild(newNode,oNode);

        }

    </script> 

     </body>