复制节点

节点复制也是常见的DOM操作,例如,在实现购物车时使用鼠标将商品拖拽到购物车中,商品的拖拽功能就可以使用节点的复制来实现。

在jQuery中提供了clone()方法,用于复制DOM节点(包含节点中的子节点、文本节点和属性节点),其语法格式如下:

$(sselector).clone(includeEvents, [deepEvents])
  • $(selector):表示需要复制的节点元素
  • includeEvents(可选、布尔类型):表示是否同时复制元素的附加数据和绑定事件,默认为false
  • deepEvents(可选、布尔类型):表示是否同时复制元素中的所有子元素的附加数据和绑定事件,参数deepEvents默认与includeEvents一致。

示例1:

$("#shirtDiv").clone(false)//与clone()效果相同
$("#shirtDiv").clone(true)
$("#shirtDiv").clone(true, false)
$("#shirtDiv").clone(false, false)//与clone(false)效果相同
$("#shirtDiv").clone(true, true)//与clone(true)效果相同

示例2:

<!doctype html>
<html>
<head><meta charset="utf-8"><title>元素及事件的复制-jQuery</title><script type="text/javascript" src="js/jquery-1.x.js"></script><style type="text/css">#cloneDiv div{display:inline-block; margin:0 3px;}</style>
</head>
<body><div id="containerDiv"><div id="shirtDiv"> <img src="data:images/shirt.jpg" width="150px" title="喷绘T恤" /> <br/><span>设计喷绘T恤</span> </div><div><input type="button" value="普通复制" id="normalClone" /><input type="button" value="复制事件" id="normalEventClone" /><input type="button" value="复制元素及子元素" id="deepClone" /><input type="button" value="复制子元素及事件" id="deepEventClone" /></div><hr/><div id="cloneDiv"></div></div><script type="text/javascript">$(function (e) {//为shirtDiv中的span标签附加数据$("#shirtDiv span").data("msg", "漫步时尚广场-大卖场");//为shirtDiv添加点击事件,在事件中获取div中的span标签的附加数据$("#shirtDiv").click(function (){alert("shirtDiv被点击" + "附加数据:" + $(this).find("span").data("msg"));});//为shirtDiv中的img添加点击事件$("#shirtDiv img").click(function () {alert($(this).attr("title"));});//普通复制$("#normalClone").click(function () {//清空cloneDiv中的内容$("#cloneDiv").empty();//仅复制元素的内容,不对元素的事件处理和子元素的附加数据进行复制$("#cloneDiv").append($("#shirtDiv").clone(false));});//元素、事件处理、子元素的事件处理和附加数据同时复制$("#normalEventClone").click(function () {$("#cloneDiv").append($("#shirtDiv").clone(true));});//复制元素及事件处理,但不复制子元素事件处理和附加数据$("#deepClone").click(function () {$("#cloneDiv").append($("#shirtDiv").clone(true, false));});//元素、事件处理、子元素的事件处理和附加数据同时复制$("#deepEventClone").click(function () {$("#cloneDiv").append($("#shirtDiv").clone(true, true));});});</script>
</body>
</html>

jQuery--复制节点clone()详解相关推荐

  1. jquery遍历多个li_21个jQuery遍历节点方法详解

    本篇教程介绍了21个jQuery遍历节点方法详解,希望阅读本篇文章以后大家有所收获,帮助大家对jQuery的理解更加深入. < 1.children()方法:$('div').children( ...

  2. jQuery的deferred对象详解

    阮一峰大神的关于jQuery的deferred对象详解 http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_ ...

  3. logback节点配置详解

    logback节点配置详解 一:根节点 <configuration></configuration> 属性 : debug : 默认为false ,设置为true时,将打印出 ...

  4. jQuery.extend 函数使用详解

    jQuery.extend 函数使用详解 一.总结 一句话总结: jquery $.extend的作用就是:用于将一个或多个对象的内容合并到目标对象:$.extend( target [, objec ...

  5. jQuery Validate验证框架详解

    2019独角兽企业重金招聘Python工程师标准>>> 一.导入js库 <script type="text/javascript" src="& ...

  6. jQuery 表单验证插件,jQuery Validation Engine用法详解

    jQuery 表单验证插件,jQuery Validation Engine用法详解 功能强大的 jQuery 表单验证插件,适用于日常的 E-mail.电话号码.网址等验证及 Ajax 验证,除自身 ...

  7. atitit.jQuery Validate验证框架详解与ati Validate 设计新特性

    atitit.jQuery Validate验证框架详解与ati Validate 设计新特性 1. AtiValidate的目标1 2. 默的认校验规则1 2.1. 使用方式 1.metadata用 ...

  8. 最全的jquery datatables api 使用详解

    https://www.cnblogs.com/amoniyibeizi/p/4548111.html 最全的jquery datatables api 使用详解 学习可参考:http://www.g ...

  9. 【转】4.1触碰jQuery:AJAX异步详解

    传送门:异步编程系列目录-- 示例源码:触碰jQuery:AJAX异步详解.rar AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript 和 X ...

最新文章

  1. 用Transformer实现OCR字符识别!
  2. tensorflow 的输入层和输出层维度注意事项
  3. 自定义Flex Library的使用
  4. fpga驱动步进电机转动指定角度_【硬见小百科】步进电机工作原理及实现方法...
  5. Interview Q A 三只蚂蚁不相撞的概率是多少
  6. 你知道什么是Jest吗?
  7. 【pmcaff】从中国到世界:移动领域的大现状
  8. 如何确定固定资产入账价值
  9. Docker中部署Mysql8数据库
  10. mysql long varchar2_long查询结果转换为varchar2类型
  11. JavaScript中为何要使用prototype
  12. SAP应用搜索分页的实现原理
  13. 前序遍历m-ary树_在Ruby中使用ary [start,length]- object进行数组元素分配
  14. c#读蓝牙数据_C#读取BWT901CL蓝牙传感器的数据
  15. list元素求和_C# lamda =gt;与 数组 list,简单应用
  16. c语言实验--九九乘法表,C语言实验报告(四)
  17. 深圳大学使用路由器登陆校园网,openwrt登陆drcom,d版教程
  18. IT英语中英文对照:著名的软件产品
  19. Cadence通孔焊盘制作
  20. java Date类型:24小时制和12小时制

热门文章

  1. vscode输出不滚动_解决 使用VSCode环境进行开发,突然出现卡顿、打字显示缓慢,滚动、选择迟缓等问题...
  2. Java8新特性之Joining
  3. 关于Git提交报warning解决方法(个人笔记)
  4. 银行卡电信诈骗危险预测
  5. 单片机 STM32 HAL 步进电机 Motor
  6. Angular $injector:unpr Unknown provider 问题原因汇总
  7. 解决java报错class [Ljava.lang.Object; cannot be cast to class [Ljava.lang.Comparable
  8. 那些年我们一起追过的美剧
  9. Java 生成微信扫描的二维码,跳转到指定网址,图片增加二维码及文字水印
  10. module ‘win32com.gen_py.00020813-0000-0000-C000-000000000046x0x1x9‘ has no attribute ‘CLSIDToClassM