jQuery 学习-DOM篇(四):jQuery 删除 DOM 元素的方法

推荐阅读

Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506
Helm3(K8S 资源对象管理工具)博客专栏:https://blog.csdn.net/xzk9381/category_10895812.html

本文原文链接:https://blog.csdn.net/xzk9381/article/details/113372601,转载请注明出处。如有发现文章中的任何问题,欢迎评论区留言。

一、empty() 方法

使用 empty() 方法可以删除指定元素内的所有子元素:

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<script src="jquery-1.12.4.js"></script>
	<script type="text/javascript">
		$('document').ready(function (){
			$('#div1').empty();
		})
	</script>
</head>
<body>
	<div id="div1">
		<span>测试</span>
		<div>测试</div>
		<input type="button" value="测试">
	</div>
</body>
</html>

二、remove() 方法

remove() 方法和 empty() 方法一样,都是用于移除元素。但是 remove 方法会将元素自身也移除,同时也会移除元素内部所有的数据,包括绑定的事件以及与该元素有关的 jQuery 数据。同时也可以使用参数来过滤要删除的内容,这个参数可以是 jQuery 中的选择器。

1. 删除所有元素

例如删除所有 class 为 div1 的元素:

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<script src="jquery-1.12.4.js"></script>
	<script type="text/javascript">
		$('document').ready(function (){
			$('.div1').remove()
		})
	</script>
</head>
<body>
	<div class="div1">测试1</div>
	<div class="div1">测试2
		<span>span 标签</span>
	</div>
	<div class="div1">测试3</div>
	<div class="div1">测试4</div>
	<div class="div1">测试5</div>
</body>
</html>
2. 删除元素集合中的指定元素

例如删除元素集合中索引值等于 2 的元素:

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<script src="jquery-1.12.4.js"></script>
	<script type="text/javascript">
		$('document').ready(function (){
			$('.div1').remove(':eq(2)');
		})
	</script>
</head>
<body>
	<div class="div1">测试1</div>
	<div class="div1">测试2
		<span>span 标签</span>
	</div>
	<div class="div1">测试3</div>
	<div class="div1">测试4</div>
	<div class="div1">测试5</div>
</body>
</html>

删除元素集合中包含内容 “测试4” 的元素:

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<script src="jquery-1.12.4.js"></script>
	<script type="text/javascript">
		$('document').ready(function (){
			$('.div1').remove(':contains("测试4")');
		})
	</script>
</head>
<body>
	<div class="div1">测试1</div>
	<div class="div1">测试2
		<span>span 标签</span>
	</div>
	<div class="div1">测试3</div>
	<div class="div1">测试4</div>
	<div class="div1">测试5</div>
</body>
</html>

需要注意的是,如果只使用 .div1 选择器,是无法删除子元素 span 的。如果要删除 span 标签,选择器可以使用 $(’.div1 span’)。

三、detach() 方法

detach() 方法处理的效果与 remove() 方法一样,同样支持传递参数。但是 detach() 会将删除的对象保留在内存中,也就是说在删除元素后,还可以继续在内存中对该元素进行操作。

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<script src="jquery-1.12.4.js"></script>
	<script type="text/javascript">
		$('document').ready(function (){
			$('div').click(function (){
				console.log($(this).html());
			})

			$('#btn1').click(function(){
				$.data(div1,'type','detach');
				var mydiv = $('#div1').detach();
				$('body').append(mydiv);
				console.log($.data(div1));
			})

			$('#btn2').click(function(){
				$.data(div2,'type','remove');
				var mydiv = $('#div2').remove();
				$('body').append(mydiv);
				console.log($.data(div2));
			})
		})
	</script>
</head>
<body>
	<div id="div1" style="width: 100px;height: 20px;background: #ccc;margin-top: 20px;">detach 测试</div>
	<div id="div2" style="width: 100px;height: 20px;background: orange;margin-top: 20px;">remove 测试</div>
	<input type="button" value="detach 删除" id="btn1" style="margin-top: 20px;">
	<input type="button" value="input 删除" id="btn2" style="margin-top: 20px;">
</body>
</html>

运行上面的代码可以看出,两种方法删除的元素都可以通过变量的方式存储在内存中。不同的是,使用 detach 方法删除的元素在重新插入时,可以保留事件和数据,而 remove 方法删除的元素则不会保留事件和数据。

本文原文链接:https://blog.csdn.net/xzk9381/article/details/113372601,转载请注明出处。如有发现文章中的任何问题,欢迎评论区留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

店伙计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值