首页 > 编程笔记 > JavaScript笔记 > jQuery DOM操作
jQuery detach()和empty()方法
jQuery 删除元素除了上节教程介绍的 remove() 方法外,还有 detach() 和 empty() 方法,本节教程就对这两个方法进行介绍。
语法:
举例:
图 1:默认效果
我们点击【删除】按钮后,此时浏览器预览效果如图 2 所示。
图 2:点击按钮后的效果
在这个例子中,我们为每一个 li 元素添加一个点击事件,点击任何一个 li 元素都会弹出一个对话框。在我们点击【删除】按钮后,<li>jQuery</li> 这一项就会被添加到 ul 元素内部的末尾处。但是这个时候,如果再去点击 <li>jQuery</li> 这一项,会发现之前绑定的点击事件被删除了,并不会弹出对话框。
当我们把 remove() 替换成 detach() 后,可以发现 li 元素被删除后又重新被添加使用时,该元素之前绑定的点击事件依然存在。对于 remove() 和 detach() 这两个方法,可以总结为这一点:元素被删除后又重新被添加,如果不希望该元素保留原来绑定的事件,应该用 remove() 方法;如果希望该元素保留原来绑定的事件,应该使用 detach() 方法。
语法:
举例:
图 3:默认效果
我们点击【删除】按钮后,此时预览效果如图 4 所示。
图 4:点击按钮后的效果
remove() 和 detach() 这两个方法在删除元素时,会将自身元素以及所有后代元素一并删除。empty() 方法仅仅是删除后代元素,并不会删除自身元素。
jQuery detach()方法
在 jQuery 中,detach() 和 remove() 的功能虽然相似,都是将某个元素及其内部所有内容删除,但是两者也有明显的区别。- remove() 方法用于“彻底”删除元素。所谓的“彻底”,指的是不仅会删除元素,还会把元素绑定的事件删除;
- detach() 方法用于“半彻底”删除元素。所谓的“半彻底”,指的是只会删除元素,不会把元素绑定的事件删除。
语法:
$().detach()
举例:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-1.12.4.min.js"></script> <script> $(function () { $("li").click(function () { alert("欢迎来到新宝库!") }); $("#btn").click(function () { var $li = $("li:nth-child(4)").remove(); $($li).appendTo("ul"); }); }) </script> </head> <body> <ul> <li>HTML</li> <li>CSS</li> <li>JavaScript</li> <li>jQuery</li> <li>Vue.js</li> </ul> <input id="btn" type="button" value="删除" /> </body> </html>默认情况下,预览效果如图 1 所示。
图 1:默认效果
我们点击【删除】按钮后,此时浏览器预览效果如图 2 所示。
图 2:点击按钮后的效果
在这个例子中,我们为每一个 li 元素添加一个点击事件,点击任何一个 li 元素都会弹出一个对话框。在我们点击【删除】按钮后,<li>jQuery</li> 这一项就会被添加到 ul 元素内部的末尾处。但是这个时候,如果再去点击 <li>jQuery</li> 这一项,会发现之前绑定的点击事件被删除了,并不会弹出对话框。
当我们把 remove() 替换成 detach() 后,可以发现 li 元素被删除后又重新被添加使用时,该元素之前绑定的点击事件依然存在。对于 remove() 和 detach() 这两个方法,可以总结为这一点:元素被删除后又重新被添加,如果不希望该元素保留原来绑定的事件,应该用 remove() 方法;如果希望该元素保留原来绑定的事件,应该使用 detach() 方法。
jQuery empty()方法
在 jQuery 中,我们可以使用 empty() 方法来“清空”某个后代元素。语法:
$().empty()
举例:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-1.12.4.min.js"></script> <script> $(function () { $("#btn").click(function () { $("ul li:nth-child(4)").empty(); }); }) </script> </head> <body> <ul> <li>HTML</li> <li>CSS</li> <li>JavaScript</li> <li>jQuery</li> <li>Vue.js</li> </ul> <input id="btn" type="button" value="删除" /> </body> </html>默认情况下,预览效果如图 3 所示。
图 3:默认效果
我们点击【删除】按钮后,此时预览效果如图 4 所示。
图 4:点击按钮后的效果
remove() 和 detach() 这两个方法在删除元素时,会将自身元素以及所有后代元素一并删除。empty() 方法仅仅是删除后代元素,并不会删除自身元素。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算