clone()函数用于克隆当前匹配元素集合的一个副本,并以jQuery对象的形式返回。你也可以简单地理解为:克隆当前jQuery对象。

你还可以指定是否复制这些匹配元素(甚至它们的子元素)的附加数据( data()函数 )和绑定事件。

该函数属于jQuery对象(实例)。

语法

jQueryObject.clone( withDataAndEvents [, deepWithDataAndEvents ] )

参数

参数 描述
withDataAndEvents 可选/Boolean类型是否同时复制元素的附加数据和绑定事件,默认为false
deepWithDataAndEvents 可选/Boolean类型是否同时复制元素的所有子元素的附加数据和绑定事件,默认值即为参数withDataAndEvents的值。

第二个参数不设置就默认为第一个参数的值

clone()主要用于克隆当前jQuery对象的一个副本。

jQuery 1.5 新增支持:clone()支持第二个参数deepWithDataAndEvents。该参数指示是否同时复制被克隆元素的所有子元素的附加数据和绑定事件。

注意:
1、在jQuery 1.4之前,clone()函数只额外复制元素的绑定事件,从1.4版本开始,才开始支持复制元素的附加数据。

2、1.5.0版本时(只有1.5.0),参数withDataAndEvents的默认值被错误地设定为true,从1.5.1开始,其默认值才被改回false

返回值

clone()函数的返回值为jQuery类型,返回当前jQuery对象的一个克隆副本。

注意:出于性能原因考虑,clone()函数不会复制某些表单元素的动态,例如用户在<textarea>输入的内容、用户在<select>中选择的选项。不过<input>元素的动态将会被复制,例如用户在text中输入的内容、用户对checkbox的选中状态。

示例&说明

clone()函数用于克隆当前jQuery对象。请参考下面这段HTML代码为例:

<p id="n1">    <input id="n2" type="button" value="按钮1" />    <input id="n3" type="button" value="按钮2" /></p>

以下jQuery示例代码用于演示clone()函数的具体用法:

// 当前jQuery版本:1.11.1

$(":button").click( function(){    document.writeln( this.value );} );var $n2 = $("#n2");$n2.data("myData", "附加数据");

//没有克隆附加数据和绑定事件var $clonedN2 = $n2.clone(); // 两个参数均默认为falsedocument.writeln( $clonedN2.data("myData") ); // undefined$clonedN2.trigger("click"); // (没有绑定的点击事件,无响应输出)

//同时克隆附加数据和绑定事件var $clonedN2WithCopy = $n2.clone( true ); // 两个参数:true、true(第二个参数不设置,默认为第一个参数的值)document.writeln( $clonedN2WithCopy.data("myData") ); // 附加数据$clonedN2WithCopy.trigger("click"); // 按钮1

jquery之clone()方法详解的更多相关文章

  1. jQuery插件制作方法详解

        jQuery插件制作方法详解   jquery插件给我的感觉清一色的清洁,简单.如Jtip,要使用它的功能,只需要在你的元素的class上加 上Jtip,并引入jtip.js及其样式即可以了. ...

  2. jQuery中 $.ajax()方法详解

    $.ajax()方法详解 jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为Strin ...

  3. jQuery - Ajax ajax方法详解

    $.ajax()方法详解 jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为Strin ...

  4. Clone()方法详解

    一.克隆的原理与应用 clone在堆上分配内存,分配的内存和源对象(即调用clone方法的对象)相同,然后再使用原对象中对应的各个域,填充新对象的域, 填充完成之后,clone方法返回,一个新的相同的 ...

  5. jquery之 animate()方法详解

    jQuery.animate() 函数详解 animate()函数用于执行一个基于css属性的自定义动画. 你可以为匹配的元素设置css样式,animate()函数将会执行一个从当前样式到指定的css ...

  6. 方法object面试题分析:7JAVA中Object的clone方法详解-克隆-深克隆

    时间紧张,先记一笔,后续优化与完善.     每日一道理 翻开早已发黄的页张,试着寻找过去所留下的点点滴滴的足迹.多年前的好友似乎现在看来已变得陌生,匆忙之间,让这维持了多年的友谊变淡,找不出什么亲切 ...

  7. 转:Java中的Clone()方法详解

    Java中对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那 ...

  8. jQuery之$.ajax()方法详解及实例

    1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如 ...

  9. jQuery ajax - ajax() 方法详解

    一些代码通过jQuery来做ajax异步提交. //验证昵称是否存在 function checkNickNameIsExist(){ var nickName = jQuery("#nic ...

随机推荐

  1. 在linux下的firefox中安装flashplayer

    将 libflashplayer.so 复制进 ~/.mozilla/plugins/ 若目标目录不存在,请自行创建

  2. java web sql注入测试(1)---概念概述

    在进行java web 测试时,经常会忽略的测试种类就是sql注入测试,这类缺陷造成的原因是开发技术在这方面欠缺的表现,虽然不常见,但一旦有这类缺陷,就很因此对运营的数据造成很多不必要的损失,所以,还 ...

  3. 如何通过类找到对应的jar包

    ctrl+shift+T 然后输入对应类  

  4. 图像处理之常用颜色RGB、灰度值

    128/0/0       深红         255/0/0       红           255/0/255     粉红        255/153/204 玫瑰红       153 ...

  5. gerrit docker运行失败 chown: /var/gerrit/review_site: Permission denied 【已解决】

    Docker Volume 之权限管理(转) - jackluo - 博客园 http://www.cnblogs.com/jackluo/p/5783116.html 为什么在公司电脑没有问题,但在 ...

  6. zabbix监控nginx

     nginx status详解 active connections – 活跃的连接数量server accepts handled requests — 总共处理了11989个连接 , 成功创建11 ...

  7. ecshop第一讲之安装

    今天开始对Ectouch做一些研究,但是发现网上资源很少,而且官网对服务都需收费:并且提供的wiki.官方文档等都是空的,瞬间感觉,,,,后来开始海量搜索,最后发现只有论坛还有些东西可以看看,并对海量 ...

  8. ACM题目————装箱问题

    题目描述 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数). 要求n个物品中,任取若干个装入箱内,使箱子的剩 ...

  9. quick-cocos2d-x 接入支付宝(android)(转,待验证)

    quick-cocos2d-x 实现在lua里面完成android支付宝的接入 一.支付宝注册是很麻烦的一个过程,本文就不解释了,想了解的去官网看下注册流程.然后下载他们的sdk-WS_SECURE_ ...

  10. 杭电1002-A + B Problem II

    #include<stdio.h>#include<string.h> int main(){    char str1[1001],str2[1001];    int t, ...