用法
.clone( [withDataAndEvents ] ) => jQuery
.clone( [withDataAndEvents ] ) => jQuery
說明:創建匹配元素集的深層副本。
-
添加的版本:1.0
.clone( [withDataAndEvents ] )
-
withDataAndEvents(默認:
false
)類型:Boolean一個布爾值,指示是否應將事件處理程序與元素一起複製。從 jQuery 1.4 開始,元素數據也將被複製。
-
-
添加的版本:1.5
.clone( [withDataAndEvents ] [, deepWithDataAndEvents ] )
-
withDataAndEvents(默認:
false
)類型:Boolean一個布爾值,指示是否應將事件處理程序和數據與元素一起複製。默認值為false
.*In jQuery 1.5.0 the default value was incorrectly true; it was changed back to false in 1.5.1 and up.
-
deepWithDataAndEvents(默認:
value of withDataAndEvents
)類型:Boolean一個布爾值,指示是否應複製克隆元素的所有子元素的事件處理程序和數據。默認情況下,它的值與第一個參數的值匹配(默認為false
)。
-
.clone()
方法執行匹配元素集的deep
副本,這意味著它複製匹配的元素以及它們的所有後代元素和文本節點。
注意:出於性能原因,某些表單元素的動態狀態(例如,輸入的用戶數據)textarea
和用戶選擇select
) 不會複製到克隆的元素。克隆時input
元素,元素的動態狀態(例如,輸入文本輸入的用戶數據和用戶對複選框所做的選擇)保留在克隆的元素中。
當與其中一種插入方法結合使用時,.clone()
是一種在頁麵上複製元素的便捷方法。考慮以下 HTML:
|
如 .append()
的討論中所示,通常當一個元素插入 DOM 中的某個位置時,它會從其舊位置移動。所以,給定代碼:
|
生成的 DOM 結構將是:
|
為了防止這種情況,而是創建元素的副本,您可以編寫以下內容:
|
這將產生:
|
注意:使用時.clone()
方法,您可以在將克隆的元素或其內容(重新)插入到文檔之前對其進行修改。
通常,綁定到原始元素的任何事件處理程序都將 not
複製到克隆。可選的withDataAndEvents
參數允許我們更改此行為,並改為製作所有事件處理程序的副本,綁定到元素的新副本。從 jQuery 1.4 開始,所有元素數據(由 .data()
方法附加)也被複製到新副本。
但是,元素數據中的對象和數組不會被複製,並將繼續在克隆元素和原始元素之間共享。要深度複製所有數據,請手動複製每個數據:
|
從 jQuery 1.5 開始,可以選擇使用 deepWithDataAndEvents
增強 withDataAndEvents
以複製克隆元素的所有子元素的事件和數據。
注意:使用.clone()
具有產生重複元素的副作用id
屬性,應該是唯一的。在可能的情況下,建議避免使用此屬性克隆元素或使用class
屬性作為標識符。
例子:
克隆所有 b 元素(並選擇克隆)並將它們添加到所有段落中。
|
演示:
相關用法
- JQuery .closest()用法及代碼示例
- JQuery .click()用法及代碼示例
- JQuery .clearQueue()用法及代碼示例
- JQuery .contextmenu()用法及代碼示例
- JQuery .contents()用法及代碼示例
- JQuery UI .cssClip()用法及代碼示例
- JQuery .context用法及代碼示例
- JQuery .css()用法及代碼示例
- JQuery .children()用法及代碼示例
- JQuery .change()用法及代碼示例
- JQuery .jquery用法及代碼示例
- JQuery .scroll()用法及代碼示例
- JQuery .add()用法及代碼示例
- JQuery .undelegate()用法及代碼示例
- JQuery .load()用法及代碼示例
- JQuery .empty()用法及代碼示例
- JQuery UI .labels()用法及代碼示例
- JQuery UI .addClass()用法及代碼示例
- JQuery UI .toggleClass()用法及代碼示例
- JQuery .removeAttr()用法及代碼示例
- JQuery .addClass()用法及代碼示例
- JQuery .next()用法及代碼示例
- JQuery UI .hide()用法及代碼示例
- JQuery .promise()用法及代碼示例
- JQuery .trigger()用法及代碼示例
注:本文由純淨天空篩選整理自jquery.com大神的英文原創作品 .clone()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。