Z
ZHANK

DOM 操作

掌握增删改查 DOM 元素、classList 操作

DOM 操作

学习如何动态创建、添加、修改和删除页面元素。

学完本章你将: 掌握 DOM 元素的增删改查。


创建元素

javascript
// 创建新元素
let div = document.createElement("div");
div.textContent = "新创建的 div";
div.className = "my-class";
div.setAttribute("data-id", "123");

// 创建文本节点
let text = document.createTextNode("Hello World");

// innerHTML 批量创建
let container = document.getElementById("app");
container.innerHTML = `
    <div class="card">
        <h2>标题</h2>
        <p>内容段落</p>
    </div>
`;

// ⚠️ innerHTML 有 XSS 风险,不要插入用户输入
// container.innerHTML = userInput; // 危险!

添加元素

javascript
let parent = document.getElementById("list");
let item = document.createElement("li");
item.textContent = "新项目";

// 添加到末尾
parent.appendChild(item);

// 插入到指定位置
let reference = parent.firstElementChild;
parent.insertBefore(item, reference);

// 现代方法(推荐)
parent.append("文本", item);           // 末尾,支持多参数
parent.prepend(item);                  // 开头
reference.before(item);                // 之前
reference.after(item);                 // 之后

修改元素

javascript
let el = document.querySelector(".box");

// classList 操作(推荐)
el.classList.add("active");        // 添加类
el.classList.remove("hidden");     // 移除类
el.classList.toggle("dark");       // 切换类
el.classList.contains("active");   // 检查是否有类
el.classList.replace("old", "new");// 替换类

// 样式
el.style.color = "red";
el.style.fontSize = "16px";
el.style.display = "none";

// 批量设样式
Object.assign(el.style, {
    color: "blue",
    fontSize: "18px",
    fontWeight: "bold",
});

删除元素

javascript
let el = document.querySelector(".item");

// 方式 1:父元素 removeChild
el.parentNode.removeChild(el);

// 方式 2:直接 remove()(现代,推荐)
el.remove();

// 清空子元素
let container = document.getElementById("list");
container.innerHTML = "";       // 简单粗暴
while (container.firstChild) {  // 逐个子节点删除
    container.firstChild.remove();
}
container.replaceChildren();    // 现代清空(推荐)