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

jQuery 删除 DOM 节点

本文原文链接: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

猜你喜欢

转载自blog.csdn.net/xzk9381/article/details/113372601