JavaScript removeChild

JavaScript removeChild

在JavaScript中,我们学习了节点的创建,其中我们创建了几个节点,其中一个节点被称为 父节点根节点 ,而从父节点衍生出的所有其他节点被称为 子节点 。有时候可能会出现需要删除父节点的某些或所有子节点的情况,为此我们需要一种方法来方便地删除子节点。

因此,在本节中,我们将讨论和理解一种方法,通过该方法我们可以从父节点中删除一个子节点。此外,我们还将看一些示例,帮助我们更好地理解这个方法。

removeChild()方法

为了从父节点中移除一个子节点,我们使用 removeChild() 方法。removeChild()方法用于删除节点的子元素。

语法

使用removeChild()方法的语法是:

 let childNode = parentNode.removeChild(childNode);

在语法中, childNode 是我们想要从其父节点中移除的节点元素。因此,作为参数值,我们传递要移除的childNode值。另外,如果childNode中指定的子节点不是指定的 parentNode 的一部分,则该方法会抛出一个异常。然而,如果指定的childNode存在于其parentNode中,那么 removeChild() 方法将从DOM中移除并返回该childNode,但它不会从内存中移除该节点,而是将其保留在内存中。

因此,如果我们不想在内存中保留该指定的childNode,并且想要将其从内存中移除,请使用以下语法:

parentNode.removeChild(childNode);

在这个语法中,我们可以注意到我们没有将被移除的childNode存储在任何变量中(就像上面的语法中一样),这意味着被移除的元素也不会在内存中被存储在任何地方。然而,它仍然会存在于内存中,直到JS垃圾收集器销毁它。

现在,让我们看一些示例,这些示例会帮助我们更好地理解这个概念。

JavaScript removeChild()示例

让我们来看一些示例,以便更好地理解removeChild()方法的实际应用:

示例1:

<html>
<body>
<ul id = "id_1">
<li>John</li>
  <li>Rone</li>
  <li>Jessy</li>
  <li>Daisy</li>
  <li>Harry</li>
</ul>
<script>
   var getChild = document.getElementById("id_1");
   getChild.removeChild(getChild.childNodes[1]);//Removing the first child in the list
</script>
</body>
</html>

上述代码的输出如下所示:

JavaScript removeChild

代码解释:

  • 上面的代码是一个HTML和JavaScript实现,我们创建了一个无序列表,其中包含一些列表项。此外,列表还提供了一个id,即id=”id_1″。
  • 在脚本部分,我们通过document.getElementById获取了无序列表的id。
  • 从代码中我们可以了解到,’getChild’是 parentNode , 指定的索引 1childNode 的值,是我们要移除的子元素。
  • removeChild()方法会搜索索引值为1的元素,然后将其从列表中返回并删除。
  • 如果方法没有找到指定的项,它会抛出找不到指定项的异常。
  • 此外,在从列表中移除后,该项仍然存储在内存中,因为我们没有将其从内存中删除。

示例2:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
</head>
<body>
    <ul id="id_2">
        <li>Ready</li>
        <li>Steady</li>
        <li>Go</li>
    </ul>
    <script>
        let getChild = document.getElementById('id_2');
        getChild.removeChild(getChild.lastElementChild);//To remove the last element in the list
    </script>
</body>
</html>

上述代码的输出如下所示:

JavaScript removeChild

在这个示例中,我们从列表中移除了最后一个子元素。

在代码中:

  • 我们通过在其中列出一些元素来创建了一个无序列表。
  • 同时,我们为<ul>元素创建了一个’id = id_2’,这将有助于通过document.getElementById()方法获取列表项。
  • 在JS代码中,我们使用removeChild()方法从列表中移除了最后一个子元素。

注意:removeChild()方法仅用于从根元素中删除一个子元素,但如果我们想要从根元素中删除所有子元素,还有其他可用的方法可以实现。

删除所有子节点

为了删除根节点的所有子节点,我们可以通过以下方式实现:

方法1

按照以下步骤删除元素的所有子节点:

  1. 使用 firstChild 属性获取元素的第一个节点。
  2. 同样,重复上一步,直到所有子元素都从其父节点中删除。
let getChild = document.getElementById('id_1');
while (getChild.firstChild) {
    getChild.removeChild(getChild.firstChild);
}

方法2

另一种方法是使用父节点的innerHTML属性,设置为innerHTML = “”,即空字符串。方法的使用如下所示:

let getChild = document.getElementById('id_1');
getChild.innerHTML = '';

然而,innerHTML是一种删除元素的所有子节点的方法,但不建议使用该方法。

所以,这些是我们可以删除一个或所有子节点的方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程