JavaScript操作DOM需先获取元素,再读取、修改、添加或删除;关键在选对方法(如getElementById、querySelector)、确保DOM加载完成、处理null安全,并注意innerHTML XSS风险与事件委托优化。

JavaScript操作DOM元素的核心是先获取元素,再对它执行读取、修改、添加、删除等操作。关键在于选对方法、注意时机、处理null安全。
获取DOM元素的常用方式
最常用的是getElementById、querySelector和querySelectorAll:
- document.getElementById("id"):通过唯一id快速获取单个元素,返回Element或null
-
document.querySelector("css选择器"):返回第一个匹配的元素(如
querySelector(".btn")、querySelector("input[name='email']")) -
document.querySelectorAll("css选择器"):返回NodeList(类数组),需遍历使用,例如
querySelectorAll("li").forEach(...)
注意:确保DOM已加载完成再执行获取操作,否则可能返回null。推荐把脚本放在</body>前,或用DOMContentLoaded事件包裹。
修改元素内容和属性
拿到元素后,常用属性控制其内容与状态:
立即学习“Java免费学习笔记(深入)”;
在 Linux 上通过 Chrome 挂载/VNC 自动发布小红书长笔记。Agent 撰写标题和正文后执行 xhs_publish.sh --publish --submit,触发小红书发布。
- element.textContent:设置纯文本(防XSS,不解析HTML)
- element.innerHTML:设置含HTML结构的内容(注意安全,避免直接插入用户输入)
- element.setAttribute("name", "value") 或 element.name = "value"(适用于class、id、src等标准属性)
- element.classList.add/remove/toggle("className"):安全操作CSS类名,比直接改className更可靠
添加、删除和替换元素
动态构建页面结构主要靠父元素的方法:
- parent.appendChild(child):在末尾追加子元素
- parent.insertBefore(newEl, referenceEl):在指定元素前插入
- element.remove():直接删除自身(现代浏览器支持,IE不支持)
- parent.replaceChild(newEl, oldEl):用新元素替换旧元素
创建新元素用document.createElement("div"),创建文本节点用document.createTextNode("text"),组合后插入即可。
监听和响应用户操作
让DOM“活起来”的关键是事件:
- element.addEventListener("click", handler):推荐方式,支持多次绑定同一事件
- 常用事件名:
"input"(表单输入)、"change"(选项变更)、"submit"(表单提交)、"keydown"等 - 事件处理函数中,
this指向当前触发元素,e.target可精准获取实际点击目标(适合事件委托)
事件委托技巧:给父容器绑定事件,用e.target.matches(".item")判断是否命中目标子元素,减少监听器数量。
基本上就这些。DOM操作不复杂但容易忽略细节,比如忘记检查元素是否存在、没处理异步加载导致的获取失败、或在innerHTML中拼接不可信数据。稳住获取、明确意图、注意兼容性,就能可靠地操控页面。

















