带你去熟悉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)各自的区别

 <!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>
<button onclick="cloneDiv()">cloneNode()</button>
<button onclick="cloneTrueDiv()">cloneNode(true)</button>
</div>
<div class="divClones"></div>
<script>
//获取克隆的对象‘我才是真的绿色’
var getCloneDiv=document.querySelector("body>div>div:nth-child(1)");
getCloneDiv.addEventListener("click",function(){
alert("我是你妈,我创造了你");
});
function cloneDiv(){
var clo=getCloneDiv.cloneNode();//用cloneNode()克隆
console.log(clo);
document.querySelector(".divClones").appendChild(clo);//把cloneNode()克隆的节点添加在class为divClones节点中
}
function cloneTrueDiv(){
var clo=getCloneDiv.cloneNode(true);//用cloneNode(true)克隆
console.log(clo);
document.querySelector(".divClones").appendChild(clo);//把cloneNode(true)克隆的节点添加在class为divClones节点中
}
</script>
</body>
</html>

brower

点击cloneNode(),从下图看出,点击克隆节点无事件发生,且没有‘’‘我才是真的绿色’的文字,克隆的节点复制真节点的样式,标签,属性。至于标签里的元素,事件没有复制,所以我们可以称它浅克隆。

点击cloneNode(true),图片可以猜出来,完全把真节点的东西给复制了过来,我们称它为深克隆,这难得是事件的问题,暂时不讨论。

学习一下DOM中的cloneNode()与cloneNode(true)的基础知识的更多相关文章

  1. Angular 4 学习笔记 从入门到实战 打造在线竞拍网站 基础知识 快速入门 个人感悟

    最近搞到手了一部Angular4的视频教程,这几天正好有时间变学了一下,可以用来做一些前后端分离的网站,也可以直接去打包web app. 环境&版本信息声明 运行ng -v @angular/ ...

  2. C语言/C++编程学习:送给考计算机二级的同学:公共基础知识总结!

    数据结构与算法 1.算法 算法:是指解题方案的准确而完整的描述. 算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计. 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效 ...

  3. DeepLearning.ai学习笔记(四)卷积神经网络 -- week1 卷积神经网络基础知识介绍

    一.计算机视觉 如图示,之前课程中介绍的都是64* 64 3的图像,而一旦图像质量增加,例如变成1000 1000 * 3的时候那么此时的神经网络的计算量会巨大,显然这不现实.所以需要引入其他的方法来 ...

  4. Python学习笔记【第一篇】:认识python和基础知识

    我的笔记里的python代码运行环境都是在pycharm软件中运行,所以不去记录如何配置环境变量呀什么的. python种类 Cpython: Python的官方版本,使用C语言实现,使用最为广泛,C ...

  5. python中关于列表和元祖的基础知识

    一,列表 1)定义: []内以逗号分隔,按照索引,存放各种数据类型,每一个位置代表一个元素 2)特性: 1 可存放多个值 2 按照从左到右的顺序定义列表元素,下标为零开始顺序访问,有序 3可修改指定索 ...

  6. backbone学习笔记:模型(Model)(1)基础知识

    backbone为复杂Javascript应用程序提供MVC(Model View Controller)框架,框架里最基本的是Model(模型),它用来处理数据,对数据进行验证,完成后台数据与前台数 ...

  7. [权威指南]学习笔记——第1、2章 MongoDB介绍和基础知识

    安装目录:C:\Program Files\MongoDB\Server\3.2 Bin:..\..\Program Files\MongoDB\Server\3.2\bin 启动命令:mongod ...

  8. 学习Spring必学的Java基础知识(2)----动态代理

    Spring AOP使用动态代理技术在运行期织入增强的代码,为了揭示Spring AOP底层的工作机理,有必要对涉及到的Java知识进行学习.Spring AOP使用了两种代理机制:一种是基于JDK的 ...

  9. JQ中的clone()方法与DOM中的cloneNode()方法

    JQ中的clone()方法与DOM中的cloneNode()方法 cloneNode()定义和用法 cloneNode()方法创建节点的拷贝,并返回该副本. 语法: node.cloneNode(de ...

随机推荐

  1. 最简单的视频编码器:基于libx264(编码YUV为H.264)

    ===================================================== 最简单的视频编码器系列文章列表: 最简单的视频编码器:编译 最简单的视频编码器:基于libx ...

  2. 【java集合框架源码剖析系列】java源码剖析之HashMap

    前言:之所以打算写java集合框架源码剖析系列博客是因为自己反思了一下阿里内推一面的失败(估计没过,因为写此博客已距阿里巴巴一面一个星期),当时面试完之后感觉自己回答的挺好的,而且据面试官最后说的这几 ...

  3. Android开发学习之路--百度地图之初体验

    手机都有gps和网络,通过gps或者网络可以定位到自己,然后通过百度,腾讯啊之类的地图可以显示我们的地理位置.这里学习下百度地图的使用.首先就是要申请开发者了,这个详细就不多讲了.http://dev ...

  4. 输入过滤器——InputFilter

    一般情况下我们通过请求体读取器InputStreamInputBuffer获取的仅仅是源数据,即未经过任何处理发送方发来的字节.但有些时候在这个读取的过程中希望做一些额外的处理,并且这些额外处理可能是 ...

  5. 【一天一道LeetCode】#206. Reverse Linked List

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Reverse ...

  6. USB有时adb shell连不上设备

    USB有时adb shell连不上设备 图1 下面汇总有效的解决方法 1.     重启 2.     卸载和重新装载驱动 图2 3.

  7. android 中List转换String,String转换List 改进版本

    原来博客地址http://blog.csdn.net/qq7342272/article/details/6830907 使用原作者贴的代码不是很好用,不能正常运行,所以我稍微改进了一下,特来分享给大 ...

  8. 高通QSD MSM APQ区别

    高通msm是Mobile Station Modem 的缩写,即移动基带工作站,是指带有基带芯片的移动处理器,实际就是基带内置的手机处理器(soc)系列. qsd是qualcomm snapdrago ...

  9. 基于java自身技术实现消息方式的系统间通信

    这篇博客基本照搬了分布式java应用基础与实践一书的内容 java自带的远程调用分两种一种是rmi,一种是webservice 我们先看rmi(remote method invoke)# 使用rmi ...

  10. Red Hat Enterprise Linux 5 64-bit chinese language support config steps

    Red Hat Enterprise Linux 5 64-bit 系统下安装中文语言支持方法 测试环境:Windows2012+Vmvare9.0+Red Hat Enterprise Linux ...