Node 对象提供了 removeChild() 方法实现从 HTML 页面中删除指定节点。其语法结构如下:
```javascript
var oldChild = node.removeChild(child);
OR
element.removeChild(child);
```
在上述语法结构中,调用 removeChild() 方法的 node 表示 child 参数的父节点,而 child 参数则表示要删除的那个节点。
oldChild 则用于存储要删除的节点的引用,即 oldChild === child。当然,如果我们需要完成的仅仅只是删除节点操作的话,并不需要定义变量来存储被删除的节点。
> **值得注意的是:** 在上述语法结构中,如果 child 参数不是 node 的子节点的话,调用该方法时会报错。
我们可以通过如下代码示例,测试 removeChild() 方法的具体使用:
```javascript
// 获取父节点
var parent = document.getElementById('parent');
// 获取子节点
var child = document.getElementById('btn');
// 删除节点
parent.removeChild(child);
```
> **值得注意的是:** 被删除的节点是否从内存中被销毁,Mozilla 社区有这样一段描述:
>
> 被移除的这个子节点仍然存在于内存中,只是没有添加到当前文档的 DOM 树中。
>
> 因此,你还可以把这个节点重新添加回文档中。当然,实现要用另外一个变量比如上述语法中的 oldChild 来保存这个节点的引用。
>
> 如果使用上述语法中的第二种方法,即没有使用 oldChild 来保存对这个节点的引用,则认为被移除的节点已经是无用的,在短时间内将会被内存管理回收。
根据 Mozilla 社区对 removeChild() 方法的描述,我们可以进行如下代码示例的尝试:
```javascript
// 获取父节点
var parent = document.getElementById('parent');
// 获取子节点
var child = document.getElementById('btn');
// 删除节点,并将删除的节点存储在 oldChild 变量中
var oldChild = parent.removeChild(child);
// 将删除的节点再添加到父节点的子节点列表中
parent.appendChild(oldChild);
```
- 关于
- 第一章 DOM 是什么
- 第一节 DOM 介绍
- 第二节 DOM 树结构
- 第二章 Document 对象
- 第一节 Document 对象介绍
- 第二节 定位页面元素
- 第三节 创建页面元素
- 第三章 Node 对象
- 第一节 Node 对象介绍
- 第二节 判断节点类型
- 第三节 遍历节点
- 第四节 插入节点
- 第五节 删除节点
- 第六节 替换节点
- 第七节 复制节点
- 第八节 textContent 属性
- 第四章 Element 对象
- 第一节 Element 对象介绍
- 第二节 DOM 元素树
- 第三节 定位页面元素
- 第四节 遍历元素
- 第五节 属性操作
- 第六节 innerHTML 属性
- 第五章 样式操作
- 第一节 获取内联样式
- 第二节 获取外联样式表
- 第三节 获取 class 属性
- 第四节 获取当前有效样式
- 第五节 设置内联样式
- 第六节 设置 class 属性
- 第七节 Element 对象的样式属性
- 第六章 事件
- 第一节 什么是事件
- 第二节 注册事件
- 第三节 移除注册事件
- 第四节 Event 事件对象
- 第五节 获取目标元素
- 第六节 阻止默认行为
- 第七节 获取鼠标坐标
- 第八节 事件流
- 第九节 事件委托
- 第七章 表单操作
- 第一节 获取表单
- 第二节 表单操作
- 第三节 表单验证
- 第四节 表单提交
- 第八章 BOM
- 第一节 BOM 是什么
- 第二节 Window 对象
- 第三节 Navigator 对象
- 第四节 History 对象
- 第五节 Location 对象
- 第六节 定时器