使用 replacechild(newnode, oldnode) 方法可以替换指定子节点,核心在于获取目标节点的引用并传入新节点。该方法会返回被替换的旧节点,同时自动从父节点移除旧节点并将新节点插入到原位置。

如何替换第一个子节点
通过 firstChild 属性可以直接定位到第一个子节点,将其作为第二个参数传入 replaceChild 即可实现替换。以下代码演示了将列表中的第一项替换为新项的过程及结果。

- Item 1
- Item 2
如何替换特定索引的子节点
当需要替换非首尾的节点时,可以通过 children 集合或 childNodes 数组获取对应索引的节点引用。这种方法适用于已知节点位置但无法直接通过属性命名的场景。

<div id="container">
<p>Paragraph 1</p>
<p>Paragraph 2</p>
<p>Paragraph 3</p>
</div>
<script>
const container = document.getElementById('container');
const newP = document.createElement('p');
newP.textContent = 'Replaced Paragraph';
// 替换第二个子节点(索引为1)
const target = container.children[1];
if (target) {
const removed = container.replaceChild(newP, target);
console.log(removed.textContent); // "Paragraph 2"
}
</script>
替换操作失败的条件是什么
如果传入的 oldNode 不是当前父节点的直接子节点,或者 newNode 与 oldNode 是同一个对象,replaceChild 会抛出 NotFoundError 异常。此外,若 newNode 已存在于 DOM 树中,它会被自动从原位置移除并插入到新位置,不会报错。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











