【前端每日基础】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);
相关推荐
老兵发新帖30 分钟前
pnpm常见报错解决办法
前端
Sonetto199938 分钟前
Nginx 反向代理,啥是“反向代理“啊,为啥叫“反向“代理?而不叫“正向”代理?它能干哈?
运维·前端·nginx
沐土Arvin38 分钟前
理解npm的工作原理:优化你的项目依赖管理流程
开发语言·前端·javascript·设计模式·npm·node.js
好_快1 小时前
Lodash源码阅读-baseUniq
前端·javascript·源码阅读
不秃的开发媛1 小时前
前端技术Ajax入门
java·开发语言·前端
牧羊狼的狼1 小时前
React.memo 和 useMemo
前端·javascript·react.js
xixixin_1 小时前
【uniapp】vue2 搜索文字高亮显示
java·服务器·前端·uni-app·交互·文字高亮
还是鼠鼠1 小时前
Android移动应用开发入门示例:Activity跳转界面
android·前端·gitee·android studio·android-studio
不知疲倦的仄仄1 小时前
跨域 同源策略通俗讲解
前端·后端·spring·edge浏览器
珹洺1 小时前
Jsp技术入门指南【十】IDEA 开发环境下实现 MySQL 数据在 JSP 页面的可视化展示,实现前后端交互
java·运维·前端·mysql·intellij-idea·jsp