学习一下DOM中的cloneNode()与cloneNode(true)的基础知识
2024-09-30 10:28:02
带你去熟悉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),图片可以猜出来,完全把真节点的东西给复制了过来,我们称它为深克隆,这难得是事件的问题,暂时不讨论。
最新文章
- 简单的学习心得:网易云课堂Android开发第五章SharedPreferences与文件管理
- Would Your Work Habits Change if You Were Paid by the Job?
- oracle常用命令(比较常见好用)
- dmesg 的时间戳处理
- Python快速建站系列-Part.Two-结构化和布局
- lucas定理,组合数学问题
- Java for LeetCode 067 Add Binary
- UVALive 6508 Permutation Graphs
- [019]转--C++ operator关键字(重载操作符)
- UIButton图文上下对齐
- 我的学习之路_第二十七章_jQuery
- zip 安装mysql 和遇到的坑
- 关于Go 的 Interface
- Mybatis逆向工程生成po、mapper接口、mapper.xml
- linux 断网 扫描基本命令
- PAT乙级 1031. 查验身份证(15)
- 负载均衡器 Ribbion
- POI实现导出Excel和模板导出Excel
- Android RxJava 2 的用法 just 、from、map、subscribe、flatmap、Flowable、Function、Consumer ...【转】
- bzoj千题计划237:bzoj1492: [NOI2007]货币兑换Cash