【前端每日基础】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);
相关推荐
IT_陈寒4 分钟前
Redis性能翻倍的5个关键策略:从慢查询到百万QPS的实战优化
前端·人工智能·后端
码界奇点13 分钟前
基于React与TypeScript的后台管理系统设计与实现
前端·c++·react.js·typescript·毕业设计·源代码管理
cehuishi952722 分钟前
python和arcgispro的实践(AI辅助编程)
服务器·前端·python
Summer不秃29 分钟前
使用 SnapDOM + jsPDF 生成高质量 PDF (含多页分页, 附源码)
前端·javascript·vue.js·pdf·node.js
AC赳赳老秦36 分钟前
工业互联网赋能智造:DeepSeek解析产线传感器数据驱动质量管控新范式
前端·数据库·人工智能·zookeeper·json·flume·deepseek
Student_Zhang1 小时前
一个管理项目中所有弹窗的弹窗管理器(PopupManager)
前端·ios·github
网络风云1 小时前
HTML 模块化方案
前端·html
小满zs1 小时前
Next.js第十九章(服务器函数)
前端·next.js
仰望.1 小时前
vxe-table 如何实现分页勾选复选框功能,分页后还能支持多选的选中状态
前端·vue.js·vxe-table
铅笔侠_小龙虾1 小时前
html+css 实现键盘
前端·css·html