學習一下DOM中的cloneNode()與cloneNode(true)的基礎知識


帶你去熟悉HTML dom中當然cloneNode()與cloneNode(true)之間區別

code

 
         
<!DOCTYPE html>
<html>
   <head>
          <meta charset="UTF-8"/>
          <meta name="Authar" content="木人子韋一日塵" />
          <title>cloneNode()與cloneNode(true)的區別</title>
          <style>
          .divClones>div{
            float:left;
          }
          </style>
   </head>
   <body>
       <div>
           <div style='background-color:green;width:200px;height:200px;text-align:center;line-height:200px;'>我才是真的綠色</div>
       </div>
      
       <div class="divClones"></div>
       <script>
           //獲取克隆的對象‘我才是真的綠色’
           var getCloneDiv=document.querySelector("body>div>div:nth-child(1)");
               //用addEventListener給真的節點添加事件
           getCloneDiv.addEventListener("click",function(){
               alert("我是你媽,我創造了你");
           });
       </script>
   </body>
</html>

 

  創建了一個200*200尺寸的綠色背景框,添加了onclick事件,而且我們有必要看一下輸入真的節點

  

開始看看cloneNode()與cloneNode(true)各自的區別

  

 1 <!DOCTYPE html>
 2 <html>
 3    <head>
 4           <meta charset="UTF-8"/>
 5           <meta name="Authar" content="木人子韋一日塵" />
 6           <title>cloneNode()與cloneNode(true)的區別</title>
 7           <style>
 8           .divClones>div{
 9             float:left;
10           }
11           </style>
12    </head>
13    <body>
14        <div>
15            <div style='background-color:green;width:200px;height:200px;text-align:center;line-height:200px;'>我才是真的綠色</div>
16        </div>
17        <div>
18           <button onclick="cloneDiv()">cloneNode()</button>
19           <button onclick="cloneTrueDiv()">cloneNode(true)</button>
20        </div>
21        <div class="divClones"></div>
22        <script>
23            //獲取克隆的對象‘我才是真的綠色’
24            var getCloneDiv=document.querySelector("body>div>div:nth-child(1)");
25            getCloneDiv.addEventListener("click",function(){
26                alert("我是你媽,我創造了你");
27            });
28            function cloneDiv(){
29                var clo=getCloneDiv.cloneNode();//用cloneNode()克隆
30                console.log(clo);
31                document.querySelector(".divClones").appendChild(clo);//把cloneNode()克隆的節點添加在class為divClones節點中
32            }
33            function cloneTrueDiv(){
34                var clo=getCloneDiv.cloneNode(true);//用cloneNode(true)克隆
35                console.log(clo);
36                document.querySelector(".divClones").appendChild(clo);//把cloneNode(true)克隆的節點添加在class為divClones節點中
37            }
38        </script>
39    </body>
40 </html>

 

  brower

  

 

點擊cloneNode(),從下圖看出,點擊克隆節點無事件發生,且沒有‘’‘我才是真的綠色’的文字,克隆的節點復制真節點的樣式,標簽,屬性。至於標簽里的元素,事件沒有復制,所以我們可以稱它淺克隆。

 

  點擊cloneNode(true),圖片可以猜出來,完全把真節點的東西給復制了過來,我們稱它為深克隆,這難得是事件的問題,暫時不討論。

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM