如何理解DOM拷貝clone()
克隆節點是DOM的常見操作,jQuery提供一個clone方法,專門用來處理dom的複製:
.clone()方法深度 复制所有匹配的元素集合,包括所有匹配元素、匹配元素的下级元素、文字节点。
clone方法比較簡單就是複製節點,但是要注意,如果節點有事件或資料之類的其他處理,我們需要透過clone(ture)傳遞一個布林值ture用來指定,這樣不只複製單純的節點結構,還要把附帶的事件與資料給一併克隆了
例如:
HTML部分<p></p>JavaScript部分 $("p").on('click', function() {//执行操作}) //clone处理一 $("p").clone() //只克隆了结构,事件丢失 //clone处理二 $("p").clone(true) //结构、事件与数据都克隆
使用上就是這樣簡單,使用複製的我們需要額外知道的細節:
clone()方法時,在將它插入到文件之前,我們可以修改複製後的元素或元素內容,如右邊程式碼我$(this).clone().css('color', 'red') 增加了一個顏色
透過傳遞true,將所有綁定在原始元素上的事件處理函數複製到複製元素上
-
clone()方法是jQuery擴展的,只能處理透過jQuery綁定的事件與資料
元素資料(data)內物件和陣列不會被複製,將繼續被克隆元素和原始元素共享。深複製的所有數據,需要手動複製每一個
案例分析:
<!DOCTYPE html><html><head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <title></title> <script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script> <style> .left, .right { width: 300px; height: 120px; } .left p, .right p { width: 100px; height: 90px; padding: 5px; margin: 5px; float: left; border: 1px solid #ccc; background: #bbffaa; } </style></head><body> <h2>通过clone克隆元素</h2> <p class="left"> <p class="aaron1">点击,clone浅拷贝</p> <p class="aaron2">点击,clone深拷贝,可以继续触发创建</p> </p> <script type="text/javascript"> //只克隆节点 //不克隆事件 $(".aaron1").on('click', function() { $(".left").append( $(this).clone().css('color','red') ) }) </script> <script type="text/javascript"> //克隆节点 //克隆事件 $(".aaron2").on('click', function() { console.log(1) $(".left").append( $(this).clone(true).css('color','blue') ) }) </script></body></html>
以上是如何理解DOM拷貝clone()的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

大家好,今天讓我們來聊聊Linux零拷貝技術。我們將以sendfile系統呼叫作為切入點,深入探討零拷貝技術的基本原理。零拷貝技術的核心思想是盡量減少資料在記憶體之間的複製,透過優化資料傳輸路徑,提高資料傳輸的效率和效能。 1.零拷貝技術簡介Linux零拷貝技術是一種用於最佳化資料傳輸的技術,透過減少資料在內核態和使用者態之間的複製次數,進而提高資料傳輸的效率。在資料傳輸的過程中,通常需要將資料從核心緩衝區複製到應用程式的緩衝區,再從應用程式緩衝區複製到網路裝置的緩衝區,最終才能完成傳送。零拷貝技術的優

本文探討Linux中 主要的幾種零拷貝技術 以及零拷貝技術 適用的場景 。為了迅速建立起零拷貝的概念,我們拿一個常用的場景來引入

深入理解Linux管道的使用方法在Linux作業系統中,管道是一種非常有用的功能,能夠將一個命令的輸出作為另一個命令的輸入,從而方便地實現各種複雜的資料處理和操作。深入理解Linux管道的使用方法對於系統管理員和開發人員來說非常重要。本文將介紹管道的基本概念,並透過具體的程式碼範例來展示如何使用Linux管道進行資料處理和操作。 1.管道的基本概念在Linux

react實現拷貝功能的方法:1、透過「copy-to-clipboard」函式庫實現複製功能;2、使用「react-copy-to-clipboard」函式庫實現複製功能;3、透過「navigator.clipboard.writeText(e )」方法實作複製;4、透過「document.execcommand(“copy」)」方法實作複製;5、透過「copy-js」函式庫實現拷貝功能。

如何正確理解PHP中的值傳遞方式PHP是廣泛應用於Web開發的腳本語言,而在PHP中的參數傳遞方式主要有值傳遞和引用傳遞兩種。而理解PHP中的值傳遞方式對於編寫高效的程式碼至關重要。本文將詳細討論PHP中的值傳遞方式,並透過具體的程式碼範例來幫助讀者更好地理解。值傳遞方式的基本概念值傳遞是指將變數的值複製一份傳遞給函數或方法,在函數內部對該值的操作不會影響到

在Go程式設計中,註解是一個非常重要的部分。註釋可以幫助程式設計師更好地理解程式碼的邏輯、目的和細節,從而提高程式碼的可讀性和可維護性。本文將介紹Go語言中註解的重要性,並結合具體的程式碼範例來說明註解對程式碼理解的幫助。首先,讓我們來看一個簡單的Go程式範例:packagemainimport"fmt"funcmain(){/

深入理解Go語言文件中的strings.Split函數,需要具體程式碼範例在Go語言中,字串操作是非常常見的需求。其中,strings套件是Go語言提供的一個標準包,提供了豐富的字串處理函數。其中,strings.Split函數是其中一個常用的函數,它的作用是根據指定的分隔符號將一個字串拆分成一個字串切片。在正式深入探討strings.Split函數之前,

隨著現代Web應用程式的複雜性不斷增加,程式碼邏輯也變得越來越複雜。為了解決這個問題,中間件在現代Web開發中變得越來越流行。 ThinkPHP6是一個流行的PHP框架,它也支援中間件。在這篇文章中,我們將討論ThinkPHP6中間件的基礎知識和實際使用。什麼是中間件?在Web開發中,中間件是指對HTTP請求和回應進行處理的一種方式。當客戶端發送請求至伺服器時,
