⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

JS DOM节点操作

学习 createElement/appendChild/remove · 难度:进阶 · +15XP

JavaScript DOM 节点操作大全

DOM(Document Object Model,文档对象模型)是浏览器将 HTML 文档解析为树形结构的编程接口。JavaScript 通过 DOM API 可以动态地创建、查找、修改和删除页面上的任意元素,这是实现动态网页交互的基础。

查找 DOM 节点

方法说明返回值
document.getElementById(id)通过 ID 查找单个元素或 null
document.querySelector(css)CSS 选择器查第一个单个元素或 null
document.querySelectorAll(css)CSS 选择器查全部静态 NodeList
el.getElementsByClassName(cls)通过 class 查找动态 HTMLCollection
el.getElementsByTagName(tag)通过标签名查找动态 HTMLCollection
el.closest(css)向上查找最近的祖先单个元素或 null

创建与插入节点

  1. 使用 document.createElement(tag) 创建元素
  2. 使用 document.createTextNode(text) 创建文本节点
  3. 通过 appendChildinsertBeforeinnerHTML 等方式插入
// 创建元素
const div = document.createElement("div");
div.className = "box";
div.textContent = "这是新创建的 div";
div.setAttribute("data-id", "123");

// 追加到父元素末尾 document.body.appendChild(div);

// 插入到指定元素之前 const ref = document.getElementById("target"); document.body.insertBefore(div, ref);

// 使用 insertAdjacentHTML(更灵活) ref.insertAdjacentHTML("beforebegin", "

前面

"); ref.insertAdjacentHTML("afterend", "

后面

"); ref.insertAdjacentHTML("afterbegin", "第一个子元素"); ref.insertAdjacentHTML("beforeend", "最后一个子元素");

节点属性与遍历

const el = document.querySelector(".container");

// 节点关系属性 el.parentNode; // 父节点 el.children; // 子元素集合(HTMLCollection,不含文本节点) el.childNodes; // 所有子节点(含文本、注释节点) el.firstElementChild; // 第一个子元素 el.lastElementChild; // 最后一个子元素 el.previousElementSibling; // 前一个兄弟元素 el.nextElementSibling; // 后一个兄弟元素

// 修改元素内容 el.textContent = "纯文本内容"; // 安全,自动转义 HTML el.innerHTML = "HTML内容"; // 解析为 HTML

// 操作类名 el.classList.add("active"); el.classList.remove("hidden"); el.classList.toggle("dark"); el.classList.contains("active"); // true/false

// 删除节点 const old = document.getElementById("old"); old.remove(); // 从 DOM 中移除 old.parentNode.removeChild(old); // 传统方式

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 231 篇
0 完成
🔥 0