DOM 添加节点学习笔记

本文介绍DOM(文档对象模型)中添加节点的相关知识。

1. 创建新节点

要在DOM中插入新节点,首先需要创建一个新节点。可以使用 document.createElement(tagName) 方法来创建新节点。tagName 是要创建的节点类型,例如 divp 等。例如:

javascriptCopy Code
let newDiv = document.createElement('div');

这个代码会创建一个新的 div 节点,并把它保存在变量 newDiv 中。

2. 添加子节点

要在DOM中添加子节点,可以使用 appendChild() 方法。该方法接受一个节点作为参数,将其作为最后一个子节点添加到调用它的节点中。例如:

javascriptCopy Code
let container = document.getElementById('container'); container.appendChild(newDiv);

这个代码会在拥有 id 属性值为 container 的元素中添加一个新的 div 子元素。

3. 插入节点

要在DOM中插入一个节点,可以使用 parentNode.insertBefore(newNode, referenceNode) 方法。该方法在 referenceNode 节点之前插入新节点 newNode 作为 parentNode 的子节点。例如:

javascriptCopy Code
let referenceNode = document.getElementById('reference'); let parentNode = referenceNode.parentNode; parentNode.insertBefore(newDiv, referenceNode);

这个代码会在拥有 id 属性值为 reference 的元素之前插入一个新的 div 子元素。

4. 删除节点

要从DOM中删除一个已有的节点,可以使用 parentNode.removeChild(node) 方法。该方法从 parentNode 中删除 node 节点。例如:

javascriptCopy Code
let nodeToRemove = document.getElementById('toremove'); let parentNode = nodeToRemove.parentNode; parentNode.removeChild(nodeToRemove);

这个代码会移除拥有 id 属性值为 toremove 的节点。

5. 实例

下面是一个实际的例子,它演示了如何在DOM中插入一些新的节点:

htmlCopy Code
<!DOCTYPE html> <html> <head> <title>添加节点示例</title> <style type="text/css"> .container { border: 1px solid black; padding: 10px; } </style> </head> <body> <h1>添加节点示例</h1> <div class="container" id="container"> <p>一些文本。</p> <p>更多的文本。</p> </div> <script type="text/javascript"> let newDiv = document.createElement('div'); let newText = document.createTextNode('这是一个新的段落。'); newDiv.appendChild(newText); let container = document.getElementById('container'); container.appendChild(newDiv); let referenceNode = document.createElement('p'); let referenceText = document.createTextNode('这个新段落将插入在这个段落之前。'); referenceNode.appendChild(referenceText); container.insertBefore(referenceNode, container.childNodes[0]); let nodeToRemove = document.getElementById('remove-me'); let parentNode = nodeToRemove.parentNode; parentNode.removeChild(nodeToRemove); </script> </body> </html>

这个示例会在拥有 id 属性值为 container 的元素中添加一个新的 div 子元素,并在该 div 元素中添加一个新段落。然后,它会在第一个段落之前插入一个新段落,并且移除拥有 id 属性值为 remove-me 的节点。