js删除元素

<!DOCTYPE HTML>
<html lang="en-US">
<head>
	<meta charset="UTF-8">
	<title>删除元素</title>
	<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
	<style type="text/css">
		*{ margin:0px; padding: 0px;}
		div{ width: 200px; height: 100px; background: red;}
	</style>
</head>
<body>
<p>this is first graph</p>
<p>this is second graph</p>
<button class="remove">点击删除段落p</button>
<p>this is third graph</p>
<div>
	<p>this is first graph</p>
	<p>this is second graph</p>
	<button class="empty">点击删除段落p</button>
	<p>this is third graph</p>
</div>
	<script type="text/javascript">
		$(function(){
			//jquery有;两种删除元素的方法remove()和empty()
			
			//1.1 remove()方法
			//从DOM中删除所有匹配的元素,同时返回被删除的元素,因此可以把删除的元素保存在变量中付给其他元素
			
			
			$(".remove").click(function(){
				var $_p = $("p").remove(); //删除段落文本
				//$("body").append($_p);
			});
			
			//1.2 empty()方法
			// empty()方法删除匹配的元素集合中的所有子节点
			$(".empty").click(function(){
				$("div").empty();  //div下的所有内容都将被删除,但是div本身还在
			});
		
		});
		

	</script>
</body>
</html>

JavaScript删除元素的方法可分为删除对象属性和删除数组元素两方面: - **删除对象属性**:使用`delete`关键字可以删除对象的属性。示例代码如下: ```javascript function fun() { this.name = 'mm'; } var obj = new fun(); console.log(obj.name); // mm delete obj.name; console.log(obj.name); // undefined ``` 上述代码中,使用`delete`关键字删除了`obj`对象的`name`属性,删除后该属性值变为`undefined`[^2]。 - **删除数组元素**: 1. **使用`delete`关键字**:可以清除数组指定下标的元素,但不会改变数组的长度,被删除的位置会变为`undefined`。示例代码如下: ```javascript var colors = ["red", "blue", "grey", "green"]; delete colors[0]; console.log(colors); // [undefined, "blue", "grey", "green"] ``` 这里使用`delete`删除了数组`colors`的第一个元素,该位置变为`undefined`,但数组长度不变[^1]。 2. **删除最后一个元素**: - **`pop()`方法**:移除数组的最后一个元素,并返回该元素。示例代码如下: ```javascript var arr = [1, 2, 3]; var lastElement = arr.pop(); console.log(lastElement); // 3 console.log(arr); // [1, 2] ``` - **`slice()`方法**:可提取数组的一部分并返回一个新数组,通过指定起始和结束位置来实现删除最后一个元素。示例代码如下: ```javascript var arr = [1, 2, 3]; var newArr = arr.slice(0, -1); console.log(newArr); // [1, 2] ``` - **`splice()`方法**:可以改变原数组,删除指定位置的元素。示例代码如下: ```javascript var arr = [1, 2, 3]; arr.splice(-1, 1); console.log(arr); // [1, 2] ``` - **`length`属性**:通过缩短数组的长度可以删除最后一个或多个元素。示例代码如下: ```javascript var arr = [1, 2, 3]; arr.length = arr.length - 1; console.log(arr); // [1, 2] ``` 3. **删除第一个元素**: - **`shift()`方法**:移除数组的第一个元素,并返回该元素。示例代码如下: ```javascript var arr = [1, 2, 3]; var firstElement = arr.shift(); console.log(firstElement); // 1 console.log(arr); // [2, 3] ``` - **`slice()`方法**:提取从第二个元素开始到数组末尾的元素组成新数组。示例代码如下: ```javascript var arr = [1, 2, 3]; var newArr = arr.slice(1); console.log(newArr); // [2, 3] ``` - **`splice()`方法**:从数组的第一个位置开始删除一个元素。示例代码如下: ```javascript var arr = [1, 2, 3]; arr.splice(0, 1); console.log(arr); // [2, 3] ``` 4. **删除数组中某个指定下标的元素**: - **`splice()`方法**:可以指定要删除元素的起始位置和数量。示例代码如下: ```javascript var arr = [1, 2, 3, 4, 5]; arr.splice(2, 1); console.log(arr); // [1, 2, 4, 5] ``` - **`for`循环**:创建一个新数组,将不需要删除元素添加到新数组中。示例代码如下: ```javascript var arr = [1, 2, 3, 4, 5]; var indexToDelete = 2; var newArr = []; for (let i = 0; i < arr.length; i++) { if (i!== indexToDelete) { newArr.push(arr[i]); } } console.log(newArr); // [1, 2, 4, 5] ``` 5. **删除数组中某个指定元素**: - **`splice()`方法**:结合`indexOf()`方法找到元素的下标,然后使用`splice()`删除。示例代码如下: ```javascript var element = 2, arr = [1, 2, 3, 4, 5]; arr.splice(arr.indexOf(2), 1); console.log(arr); // [1, 3, 4, 5] ``` - **`filter()`方法**:创建一个新数组,包含所有不等于指定元素元素。示例代码如下: ```javascript var arr = [1, 2, 3, 4, 5], element = 2; arr = arr.filter(item => item!== element); console.log(arr); // [1, 3, 4, 5] ``` - **`forEach`、`map`、`for`循环**:遍历数组,将不等于指定元素元素添加到新数组中。示例代码如下: ```javascript var arr = [1, 2, 3, 4, 5], element = 2, new_arr = []; arr.forEach(item => (item!== element && new_arr.push(item))); console.log(new_arr); // [1, 3, 4, 5] ``` - **`Set`对象**:利用`Set`的`delete()`方法删除指定元素,再转换回数组。示例代码如下: ```javascript var arr = [1, 2, 3, 4, 5], element = 2; var new_set = new Set(arr); new_set.delete(element); var new_arr = [...new_set]; console.log(new_arr); // [1, 3, 4, 5] ``` 上述删除数组元素的部分方法参考了相关内容,不同方法适用于不同场景,可根据具体需求选择合适的方法来删除数组元素[^3][^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值