JavaScript 中操作 DOM 节点(增删改)有哪些常用方法?

JavaScript DOM节点操作:增删改查核心方法详解

在现代Web开发中,JavaScript的DOM操作是实现动态网页交互的核心技术。通过增删改查网页元素,开发者可以实时更新页面内容、响应用户操作并构建复杂的前端应用。React等框架虽然通过虚拟DOM优化了更新性能,但其底层仍基于传统DOM操作原理。本文将系统讲解原生JavaScript中操作DOM节点的常用方法。

一、DOM节点基础概念

文档对象模型(DOM)将HTML文档解析为树状结构,每个HTML标签、属性、文本都是树上的节点。浏览器提供约50种DOM操作方法,其中80%的日常开发聚焦在节点的增删改操作。

1.1 节点类型说明

  • 元素节点:HTML标签(如<div>)
  • 文本节点:标签内的文字内容
  • 属性节点:标签属性(如class/id)

二、节点操作核心方法

2.1 创建节点

createElement():创建新元素节点
const newDiv = document.createElement('div');

createTextNode():创建文本节点
const textNode = document.createTextNode('新内容');

2.2 插入节点

方法 作用 示例
appendChild() 在父节点末尾添加 parent.appendChild(newDiv);
insertBefore() 在指定节点前插入 parent.insertBefore(newDiv, existingChild);

2.3 删除节点

removeChild():删除指定子节点
parent.removeChild(childToRemove);

remove()(ES6+):节点自删除
childToRemove.remove();

2.4 修改节点

  • innerHTML:替换元素HTML内容
  • textContent:设置纯文本内容
  • setAttribute():修改元素属性
    element.setAttribute('class', 'new-style');

三、高性能操作技巧

3.1 文档碎片优化

批量操作时使用DocumentFragment减少重排:

const fragment = document.createDocumentFragment();
items.forEach(item => {
fragment.appendChild(createItemElement(item));
});
listContainer.appendChild(fragment);

3.2 现代框架对比

React通过虚拟DOM实现智能更新:

  • 新增节点:旧虚拟DOM不存在时创建真实节点
  • 删除节点:新虚拟DOM不存在时移除真实节点
  • 修改节点:比对属性差异局部更新

四、实际应用案例

4.1 动态列表管理


// 创建新列表项
const newItem = document.createElement('li');
newItem.textContent = '新项目';

// 插入到第三位
const list = document.getElementById('myList');
list.insertBefore(newItem, list.children[2]);

// 删除最后一项
list.lastElementChild.remove();

// 修改第二项样式
list.children[1].setAttribute('class', 'highlight');

五、注意事项

  • 避免频繁操作DOM引发重排(Reflow)
  • 事件监听器要及时解绑防止内存泄漏
  • 使用querySelector系列方法精准定位节点

通过掌握这些核心DOM操作方法,开发者可以:

  1. 实现基础的页面交互功能
  2. 理解前端框架的底层原理
  3. 进行必要的性能优化

随着Web Components等新技术的发展,DOM操作仍然是前端工程师必须掌握的底层技能。建议开发者在熟悉原生API的基础上,再学习jQuery或现代框架的封装方法,形成完整的DOM操作知识体系。