在 jQuery 中,想要删除元素,我们有以下 3 种方法:remove()、detach( ) 和 empty( )。本节教程先来介绍 remove( ) 方法,后两个下节介绍。
在 jQuery 中,我们可以使用 remove( ) 方法来将某个元素及其内部的所有内容删除。
语法:
举例:remove( ) 方法的使用
- <!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 () {
- $("li:nth-child(4)").remove();
- })
- })
- </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 所示。
我们点击【删除】按钮后,此时预览效果如图 2 所示。
$("li:nth-child(4)").remove() 表示删除 ul 元素下的第 4 个 li 元素。记住,在 jQuery 中,除了 :nth-child() 和 :nth-of-type() 这两个选择器的下标是从 1 开始的,其他所有选择器或 jQuery 方法的下标都是从 0 开始的。
举例:remove( ) 方法会返回一个值
- <!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 () {
- //remove()可以将所选元素删除,并且返回被删除的元素
- 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>
默认情况下,预览效果如图 3 所示。
我们点击【删除】按钮后,此时预览效果如图 4 所示。
我们要清楚一点,remove( ) 方法可以返回一个值,其中返回值为被删除的元素。也就是说,虽然这个元素被删除了,但是我们可以把返回值赋值给一个变量,再次使用被删除的元素。
在这个例子中,我们使用 remove( ) 方法删除 <li>jQuery</li> 这个元素。接下来我们将被删除的元素赋值给变量 $li,然后就可以使用 appendTo( ) 方法将其添加到 ul 元素内部的末尾处。
实际上,利用 remove( ) 方法会返回一个值的特点,我们可以轻松实现两个元素的互换,请看下面的例子。
举例:互换元素
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8" />
- <title></title>
- <style type="text/css">
- ul li:nth-child(2), ul li:nth-child(4)
- {
- background-color:Orange;
- }
- </style>
- <script src="js/jquery-1.12.4.min.js"></script>
- <script>
- $(function () {
- $("#btn").click(function () {
- //将内容为“CSS”这一个li元素删除,并赋值给$li1
- var $li1 = $("li:nth-child(2)").remove();
- //将内容为“jQuery”这一个li元素删除,并赋值给$li2
- var $li2 = $("li:nth-child(3)").remove();
-
- $($li1).insertAfter("ul li:nth-child(2)");
- $($li2).insertBefore("ul li:nth-child(2)");
- })
- })
- </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>
默认情况下,预览效果如图 5 所示。
我们点击【互换】按钮后,此时预览效果如图 6 所示。
在这个例子中,我们实现了内容为“CSS”和“jQuery”这两个 li 元素的互换。技巧就是借助了内容为“JavaScript”的这个li元素作为参照物。虽然代码看起来很简单,不过要注意的地方并不少,小伙伴们最好亲自实践一下。