DOM是浏览器将HTML解析成的树状对象结构,每个标签、文本等均为节点;可通过getElementById、querySelector等获取元素,再用textContent、innerHTML、style、classList等修改内容样式,或用createElement、appendChild等动态增删改元素。
JavaScript DOM(文档对
象模型)是浏览器把 HTML 页面转换成的一个树状结构,让你能用 JavaScript 动态地读取、修改、添加或删除网页里的内容和样式。
DOM 是什么:网页的“JS 可操作版本”
当你写好一个 HTML 文件,浏览器加载后并不会直接按源码运行,而是先解析它,生成一个内存中的对象结构——这就是 DOM。每个标签(比如 、)、文本、甚至注释,都会变成一个“节点”(Node),彼此有父子、兄弟等关系。你可以把它想象成一棵家谱树, 是根, 和 是它的孩子,再往下层层展开。
怎么找到页面里的元素(获取节点)
最常用的是这几个方法,返回一个或多个元素对象:
-
document.getElementById("id名") —— 通过唯一 id 找一个元素,返回单个对象,最常用也最快
-
document.querySelector("CSS选择器") —— 类似写 CSS,比如
querySelector(".btn") 或 querySelector("header h1"),只返回第一个匹配项
-
document.querySelectorAll("CSS选择器") —— 返回所有匹配的元素,结果是 NodeList(类似数组,可遍历)
-
document.getElementsByClassName("类名") / document.getElementsByTagName("标签名") —— 返回 HTMLCollection,老写法,现在更推荐 querySelector 系列
怎么改元素的内容和属性
拿到元素后,就能操作它的内容、样式、属性了:
-
element.textContent = "新文字" —— 改纯文本(不解析 HTML 标签)
-
element.innerHTML = "带标签" —— 改 HTML 内容(注意 XSS 风险,别直接插入用户输入)
-
element.style.color = "red" —— 直接改行内样式(驼峰写法,如
backgroundColor)
-
element.setAttribute("data-id", "123") 或 element.dataset.id = "123" —— 操作自定义属性
-
element.className = "active" 或 element.classList.add("hidden") —— 控制 class(推荐用 classList,安全又灵活)
怎么添加、删除、替换元素
DOM 支持动态构建界面,常见操作有:
-
document.createElement("div") —— 创建新元素
-
parent.appendChild(child) —— 把 child 加到 parent 最后
-
parent.insertBefore(newEl, refEl) —— 插入到某个元素前面
-
element.remove() —— 删除自己(现代写法,简洁)
-
parent.replaceChild(newEl, oldEl) —— 替换子元素
DOM 操作的核心就是“先选中,再动手”。只要确保 JS 在 HTML 加载完之后运行(比如放在 前,或用 DOMContentLoaded 事件),就不会找不到元素。不复杂但容易忽略。