DOM操作核心是通过getElementById或querySelector等方法获取元素,再用textContent/innerHTML修改内容,classList/style/setAttribute调整样式属性,createElement+appendChild添加新元素,并注意节点存在性、加载时机与性能优化。
JavaScript 的 DOM 操作,核心就是通过 JS 找到页面里的元素,然后读取、修改或删除它们的内容、样式、属性,甚至添加新元素。动态改网页内容不难,关键是掌握几个常用方法和注意更新时机。
这是所有操作的前提。ID 唯一就用 getElementById;想按类名、标签、CSS 选择器找,用 querySelector(只找第一个)或 querySelectorAll(返回 NodeList)。
document.getElementById('title') → 找到 id="title" 的元素document.querySelector('.item') → 找第一个 class="item" 的元素document.querySelectorAll('li') → 找所有 li 标签,返回可遍历的集合
textContent 只改纯文本,安全、快,不会解析 HTML;innerHTML 能插入带标签的结构,但要注意 XSS 风险(别直接插入用户输入)。
el.textContent = '新的标题' → 替换全部文本,忽略原有 HTMLel.innerHTML = '加粗和普通字' → 渲染成真实 DOM 结构el.innerHTML += '新段落
',但频繁操作效率低,推荐用 appendChild
改类名推荐用 classList,它比直接操作 className 更安全灵活;改内联样式用 style.xxx(注意驼峰命名,如 style.backgroundColor);改自定义属性用 setAttribute。
el.classList.add('active') → 加一个类el.classList.toggle('hidden') → 有就删,没就加el.style.color = '#333' → 设置文字颜色el.setAttribute('data-id', '123') → 添加或更新 data-id 属性先创建元素,再设置内容/属性,最后挂到页面上。避免直接拼接字符串插入 HTML,更可控也更易维护。
const newLi = document.createElement('li')newLi.textContent = '这是新列表项'newLi.classList.add('list-item')document.querySelector('ul').appendChild(newLi)基本上就这些。DOM 操作本身不复杂,但容易忽略节点是否存在、是否已加载完成(记得等 DOMContentLoaded 或把脚本放 body 底部),还有批量更新时考虑性能(比如用 DocumentFragment 减少重排)。