【前端每日基础】day24——DOM操作

DOM 操作

获取元素

要对网页中的元素进行操作,首先需要获取这些元素。常用的方法有:

document.getElementById(id): 获取具有指定id的元素。

document.getElementsByClassName(className): 获取具有指定类名的所有元素,返回HTMLCollection。

document.getElementsByTagName(tagName): 获取具有指定标签名的所有元素,返回HTMLCollection。

document.querySelector(selector): 获取匹配CSS选择器的第一个元素。

document.querySelectorAll(selector): 获取匹配CSS选择器的所有元素,返回NodeList。

javascript 复制代码
// 通过ID获取元素
let header = document.getElementById("header");

// 通过类名获取元素
let items = document.getElementsByClassName("item");

// 通过标签名获取元素
let paragraphs = document.getElementsByTagName("p");

// 通过CSS选择器获取元素
let firstItem = document.querySelector(".item");
let allItems = document.querySelectorAll(".item");

修改元素内容

可以使用innerHTML、textContent或innerText来修改元素的内容:

javascript 复制代码
let header = document.getElementById("header");

// 修改元素的HTML内容
header.innerHTML = "<h1>New Title</h1>";

// 修改元素的文本内容
header.textContent = "New Text";

// 修改元素的文本内容(不包括隐藏文本)
header.innerText = "New Visible Text";

修改元素属性

可以使用setAttribute和getAttribute来修改和获取元素的属性:

javascript 复制代码
let link = document.querySelector("a");

// 获取属性
let href = link.getAttribute("href");

// 设置属性
link.setAttribute("href", "https://new-url.com");

也可以直接通过属性来访问和修改:

javascript 复制代码
link.href = "https://new-url.com";

修改样式

可以通过style属性直接修改元素的样式:

javascript 复制代码
let header = document.getElementById("header");

// 修改样式
header.style.color = "blue";
header.style.fontSize = "2em";
header.style.backgroundColor = "lightgray";

或者通过添加、移除类来修改样式:

javascript 复制代码
let header = document.getElementById("header");

// 添加类
header.classList.add("highlight");

// 移除类
header.classList.remove("highlight");

// 切换类(如果存在则移除,如果不存在则添加)
header.classList.toggle("highlight");

创建和删除元素

可以使用createElement来创建新元素,使用appendChild、insertBefore等方法来插入元素,使用removeChild来删除元素:

javascript 复制代码
let newParagraph = document.createElement("p");
newParagraph.textContent = "This is a new paragraph.";

// 将新元素添加到现有元素中
document.body.appendChild(newParagraph);

// 删除元素
let oldParagraph = document.getElementById("oldParagraph");
document.body.removeChild(oldParagraph);
相关推荐
excel42 分钟前
Three.js 材质(Material)详解 —— 区别、原理、场景与示例
前端
掘金安东尼1 小时前
抛弃自定义模态框:原生Dialog的实力
前端·javascript·github
hj5914_前端新手5 小时前
javascript基础- 函数中 this 指向、call、apply、bind
前端·javascript
薛定谔的算法5 小时前
低代码编辑器项目设计与实现:以JSON为核心的数据驱动架构
前端·react.js·前端框架
Hilaku5 小时前
都2025年了,我们还有必要为了兼容性,去写那么多polyfill吗?
前端·javascript·css
yangcode5 小时前
iOS 苹果内购 Storekit 2
前端
LuckySusu5 小时前
【js篇】JavaScript 原型修改 vs 重写:深入理解 constructor的指向问题
前端·javascript
LuckySusu5 小时前
【js篇】如何准确获取对象自身的属性?hasOwnProperty深度解析
前端·javascript
LuckySusu5 小时前
【js篇】深入理解 JavaScript 作用域与作用域链
前端·javascript
LuckySusu5 小时前
【js篇】call() 与 apply()深度对比
前端·javascript