js进阶 11-12  jquery如何实现节点的删除和复制

一、总结

一句话总结:remove()、detach()、empty()方法

1、jquery删除节点中的remove()方法和detach()方法的区别是什么?

detach()方法删除节点后所有绑定的事件、附加的数据等都会保留下来

因为remove()方法和detach()方法删除的数据是可以保留下来的,remove()方法删除保留的数据没有了原来的事件,detach()方法有

35             $('#btn1').click(function(){
36 var $li=$('li:first').remove()
37 $('ol').append($li)
38 })

2、jquery删除节点中的remove()方法、detach()方法和empty()方法的区别是什么?

remove()方法、detach()方法是删除自身加后代节点

empty()方法只删除后代节点

3、jquery复制节点中的clone()方法和clone(true)的区别是什么?

clone()方法复制标签

clone(true)方法复制对象

46             $('#btn4').click(function(){
47 var $li=$('li:first').clone(true)
48 $('ol').append($li)
49 })

二、jquery如何实现节点的删除和复制

1、相关知识

  1. 删除节点
    1. remove():删除匹配的元素集合中所有的子节点。

      绑定的事件,附加的数据等都会被移除。

    2. detach():从DOM中删除所有匹配的元素。

      与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来。

    3. empty():删除匹配的元素集合中所有的子节点。

      remove()和detach()这2个方法删除节点时,会将自身节点以及后代节点一并删除。但是empty()方法仅仅删除后代节点,而会保留自身节点。

  2. 复制节点

    语法:$(selector).clone(includeEvents)includeEvents:可选。布尔值。规定是否复制元素的所有事件处理。

2、代码

 <!DOCTYPE html>
<html lang="en">
<style>
</style>
<head>
<meta charset="UTF-8">
<title>演示文档</title>
<script type="text/javascript" src="jquery-3.1.1.min.js"></script>
<style>
li{
background: #ccc;margin-top: 25px;width: 150px;
}
.orange{background: orange}
.red{background: red}
.green{background: green}
.ccc{background: #ccc}
</style>
</style>
</head>
<body>
<ol>
<li class="orange">列表项1</li>
<li class="red">列表项2</li>
<li class="green">列表项3</li>
</ol>
<input id="btn1" type="button" value="remove">
<input id="btn2" type="button" value="detach">
<input id="btn3" type="button" value="empty">
<input id="btn4" type="button" value="clone">
<script type="text/javascript">
$(function(){
$('li').click(function(){
alert($(this).text())
})
$('#btn1').click(function(){
var $li=$('li:first').remove()
$('ol').append($li)
})
$('#btn2').click(function(){
var $li=$('li:first').detach()
$('ol').append($li)
})
$('#btn3').click(function(){
var $li=$('li:first').empty()
})
$('#btn4').click(function(){
var $li=$('li:first').clone(true)
$('ol').append($li)
})
})
</script>
</body>
</html>
 

最新文章

  1. 使用“Cocos引擎”创建的cpp工程如何在VS中调试Cocos2d-x源码
  2. Unity手游之路&lt;九&gt;自动寻路Navmesh之高级主题
  3. Crystal Reports 2008(水晶报表) 启动时检查更新
  4. c#之第一课入门
  5. openfire+asmack搭建的安卓即时通讯(五) 15.4.12
  6. WCF z
  7. 消息推送之APNS
  8. bzoj3996
  9. maven中tomcat7-maven-plugin插件的使用
  10. Spring MVC 解读——@RequestMapping (1)(转)
  11. Working——流程关系状态表
  12. Kubernetes环境下的各种调试方法
  13. hihocoder 1054 滑动解锁 dfs
  14. make,makefile,cmake“暴力编译法”的个人经验或理解。
  15. mongoDb造数据
  16. 【Java每日一题】20170324
  17. SparkSql处理嵌套json数据
  18. gitlab入门
  19. 第三百三十四节,web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息
  20. groovy的三个强劲属性(一)Gpath

热门文章

  1. Flume的Events
  2. Trie&amp;可持久化Trie
  3. vue中判断路由变化
  4. android中常见声音操作方式(Ringtone,SoundPool,MediaPlayer)小结
  5. 【ASP.NET开发】.NET三层架构简单解析
  6. 在Windows下搭建Apacheserver
  7. 未能加载文件或程序集“System.Collections.Concurrent”或它的某一个依赖项。
  8. Machine-learning of Andrew Ng
  9. 基于element ui的图片预览插件
  10. 10.5 android输入系统_Reader线程_使用EventHub读取事件和核心类及配置文件_实验_分析