From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/zh-cn/web/api/node/removechild/index.html | 97 +++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 files/zh-cn/web/api/node/removechild/index.html (limited to 'files/zh-cn/web/api/node/removechild') diff --git a/files/zh-cn/web/api/node/removechild/index.html b/files/zh-cn/web/api/node/removechild/index.html new file mode 100644 index 0000000000..77766b3fe4 --- /dev/null +++ b/files/zh-cn/web/api/node/removechild/index.html @@ -0,0 +1,97 @@ +--- +title: Node.removeChild +slug: Web/API/Node/removeChild +tags: + - Node.removeChild() +translation_of: Web/API/Node/removeChild +--- +
{{APIRef("DOM")}}
+ +

Node.removeChild() 方法从DOM中删除一个子节点。返回删除的节点。

+ +

语法

+ +
let oldChild = node.removeChild(child);
+
+//OR
+
+element.removeChild(child);
+ + + +

被移除的这个子节点仍然存在于内存中,只是没有添加到当前文档的DOM树中,因此,你还可以把这个节点重新添加回文档中,当然,实现要用另外一个变量比如上例中的oldChild来保存这个节点的引用. 如果使用上述语法中的第二种方法, 即没有使用 oldChild 来保存对这个节点的引用, 则认为被移除的节点已经是无用的, 在短时间内将会被内存管理回收.

+ +

如果上例中的child节点不是node节点的子节点,则该方法会抛出异常.

+ +

示例

+ +
<!--Sample HTML code-->
+<div id="top" align="center"> </div>
+
+<script type="text/javascript">
+      var top = document.getElementById("top");
+      var nested = document.getElementById("nested");
+      var garbage = top.removeChild(nested);
+      //Test Case 2: the method throws the exception (2)
+</script>
+
+<!--Sample HTML code-->
+<div id="top" align="center">
+ <div id="nested"></div>
+</div>
+
+<script type="text/javascript">
+      var top = document.getElementById("top");
+      var nested = document.getElementById("nested");
+      var garbage = top.removeChild(nested);
+      // This first call remove correctly the node
+      garbage = top.removeChild(nested);
+      // Test Case 1: the method in the second call here, throws the exception (1)
+</script>
+ +
<!--示例HTML代码-->
+
+<div id="top" align="center">
+  <div id="nested"></div>
+</div>
+
+ +
// 先定位父节点,然后删除其子节点
+var d = document.getElementById("top");
+var d_nested = document.getElementById("nested");
+var throwawayNode = d.removeChild(d_nested);
+
+ +
// 无须定位父节点,通过parentNode属性直接删除自身
+var node = document.getElementById("nested");
+if (node.parentNode) {
+  node.parentNode.removeChild(node);
+}
+
+ +
// 移除一个元素节点的所有子节点
+var element = document.getElementById("top");
+while (element.firstChild) {
+  element.removeChild(element.firstChild);
+}
+
+ +

规范

+ + + +

相关链接

+ + -- cgit v1.2.3-54-g00ecf