DOM遍历

DOM 遍历是指在 HTML 文档中导航和定位元素的过程。通过 DOM 遍历,您可以在文档中移动并查找特定的元素,以便对其进行操作或者检索信息。

寻找子元素

//DOM遍历
const h1 = document.querySelector('h1');//寻找子元素
console.log(h1.querySelectorAll('.highlight'));

在这里插入图片描述
在这里插入图片描述

上面的代码说明可以通过DOM遍历快速的定位到子元素

● 我们也可以找到元素的所有子节点(包括元素节点、文本节点和注释节点)的 NodeList 对象

console.log(h1.childNodes);

在这里插入图片描述

● 我们也可以找到元素的所有子元素节点,不包括文本节点和注释节点。这将返回一个 HTMLCollection 对象,其中包含所有子元素。

console.log(h1.children);

在这里插入图片描述

● 当然,我们可以通过这种寻找某个元素的子元素的方式来定义style

h1.firstElementChild.style.color = 'white';
h1.lastElementChild.style.color = 'orangered';

在这里插入图片描述

寻找父元素

● 找到元素的父节点,无论父节点是什么类型的节点(元素节点、文本节点等)。这将返回一个 Node 对象,表示 h1 元素的父节点。

console.log(h1.parentNode);

在这里插入图片描述

● 找到元素的最近的父元素节点。如果 h1 的父节点是一个元素节点,则返回这个元素节点;如果 h1 没有父元素节点,则返回 null。

console.log(h1.parentElement);

在这里插入图片描述

● 使用 closest 方法来查找最接近的具有指定选择器的祖先元素,并为找到的元素设置背景颜色。

h1.closest('.header').style.background = 'var(--gradient-secondary)';
h1.closest('h1').style.background = 'var(--gradient-primary)';

在这里插入图片描述

寻找兄弟元素

● 打印出该前一个兄弟元素节点

console.log(h1.previousElementSibling);

在这里插入图片描述

说明向上没有兄弟元素,我们也可以往下找

console.log(h1.nextElementSibling);

在这里插入图片描述

● h1 元素的前一个兄弟节点和后一个兄弟节点,或者如果它们不存在则显示 null。需要注意的是,这两个属性获取的节点可能是元素节点也可能是文本节点(或者其他类型的节点)。

console.log(h1.previousSibling);
console.log(h1.nextSibling);

在这里插入图片描述

● 那我们怎么知道元素的所有兄弟元素呢,我们可以找父元素的所有子元素

console.log(h1.parentElement.children);

在这里插入图片描述

● 最后,我们来玩一下,将除h1元素的所有兄弟元素缩小一半

[...h1.parentElement.children].forEach(function (el) {if (el !== h1) el.style.transform = 'scale(0.5)';
});

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/35492.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每天一个数据分析题(三百九十)- 多元线性回归

在多元线性回归中,下列哪项可以缓解多重共线性问题? A. 取对数 B. 平方 C. 去除异常值 D. 逐步回归 数据分析认证考试介绍:点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖Python,SQL&am…

从入门到精通:使用Python的Watchdog库监控文件系统的全面指南

从入门到精通:使用Python的Watchdog库监控文件系统的全面指南 引言Watchdog库概述核心组件工作原理 快速开始:设置Watchdog安装Watchdog创建一个简单的监控脚本设置和启动Observer 事件处理:如何响应文件系统的变化基本事件处理处理复杂的场景…

论文生成新纪元:探索顶尖AI写作工具的高效秘诀

在学术探索的征途中,AI论文工具本应是助力前行的风帆,而非让人陷入困境的漩涡。我完全理解大家在面对论文压力的同时,遭遇不靠谱AI工具的沮丧与无奈。毕竟,时间可以被浪费,但金钱和信任却不可轻弃。 作为一名资深的AI…

@Transactional(rollbackFor = Exception.class)注解

当作用于类上时,该类的所有 public 方法将都具有该类型的事务属性,同时,我们也可以在方法级别使用该标注来覆盖类级别的定义。 在项目中,Transactional(rollbackForException.class),如果类加了这个注解,那…

Java使用Graphics2D画图,画圆,矩形,透明度等实现

背景 如上图,需要使用Java生成一个图片, 并以base64编码的形式返回给前端展示。 使用Graphics2D类,来进行画图,其中需要画方框、原型、插入图标、写入文字等,同时需要设置透明度等细节点 环境:Jdk17&#…

Java面试八股之JVM内存泄漏按照发生的方式可以分为哪几类

JVM内存泄漏按照发生的方式可以分为哪几类 常发性内存泄漏(Frequent Memory Leak) 这类内存泄漏发生的代码会被频繁执行,每次执行时都会导致一块或多块内存无法被回收。由于泄漏行为重复发生,故称为常发性。这类泄漏通常比较容易…

下一代广域网技术2:SRv6

2.SRv6 SR架构设计之初,就为SR数据平面设计了两种实现方式:一种是SR-MPLS,其重用了MPLS数据平面,可以在现有IP/MPLS网络上增量部署;另一种是SRv6,使用IPv6数据平面,基于IPv6路由扩展头进行扩展…

Docker部署常见应用之Oracle数据库

文章目录 安装部署参考文章 安装部署 使用Docker安装Oracle数据库是一个相对简便的过程,可以避免在本地环境中直接安装Oracle数据库的复杂性。 安装Docker环境:确保你的系统上已经安装了Docker,并且Docker服务正在运行。具体的安装方法可以根…

使用North自部署图床服务

图床 图床可以把图片转为链接,从而方便我们书写、分享博客,目前图床主要分为以下几类: 利用 Git 仓库存储对象存储(OSS、COS、七牛云等)免费公共图床(SM.MS、聚合图床、ImgTP、Postimage等) 但上述图床都…

低应变复习题

1.比较临塑荷载、临界荷载和极限荷载的大小( ) A、临塑荷载<临界荷载<极限荷载 B、临塑荷载>临界荷载<极限荷载 C、临塑荷载<临界荷载>极限荷载 D、临塑荷载>临界荷载>极限荷载 参考答案:A 2.面关于低应变反射波法的描述,正确的是:( ) A、反射…

【杂记-浅谈BGP边界网关协议】

BGP边界网关协议 一、BGP边界网关协议概述二、BGP的特点及与IGP的区别三、BGP的路由属性四、BGP协议中使用的报文 一、BGP边界网关协议概述 1、BGP&#xff0c;Border Gateway Protocol&#xff0c;即边界网关协议&#xff0c;是一种在自治系统&#xff08;AS&#xff09;之间…

Websocket实现方式二——注解方式

添加Websocket依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency>根据ServerEndpoint注解注册Websocket Configuration public class AgentWsConfig …

多项式回归(Linear Regression)原理详解及Python代码示例

多项式回归原理详解 多项式回归&#xff08;Polynomial Regression&#xff09;是线性回归&#xff08;Linear Regression&#xff09;的一种扩展形式。它通过在输入变量上添加高次项来拟合非线性关系。虽然多项式回归本质上还是线性模型&#xff0c;但它允许模型在输入特征的多…

if action和Switch之间该怎么选择?

1. Switch 2. If及If Action Subsystem 3.结论 元素很多&#xff0c;用switch 元素少&#xff0c;用if或switch 如果...很多&#xff0c;用if

职业技能大赛引领下大数据专业实训教学的改革研究

随着信息化时代的加速发展&#xff0c;大数据专业作为新兴的热门领域&#xff0c;正日益成为高等职业教育体系中不可或缺的一部分&#xff0c;其承担着为社会培养大批具有高素质应用技能的大数据技术人才的重任。职业技能大赛作为检验和提升学生技能水平的有效平台&#xff0c;…

web学习笔记(六十九)vue2

1. vue2创建脚手架项目 &#xff08;1&#xff09;在cmd窗口输入npm install -g vue/cli命令行&#xff0c;快速搭建脚手架。 &#xff08;2&#xff09; 创建vue2项目 &#xff08;3&#xff09; 选择配置项目&#xff0c;最下面的选项是自己重新配置&#xff0c;第一次创建v…

使用mmdetection遇到的一些问题总结

【问题1】 No module named ‘mmcv._ext’ 应该安装mmcv-full 而不是mmcv 【问题2】cannot import name ‘Config‘ from ‘mmcv‘ 原因是mmcv的版本太高两种解决方案&#xff1a;1&#xff09;降低mmcv版本。2&#xff09;将 from mmcv import Config, DictAction 修改为 fro…

android 4大组件用法

在Android开发中&#xff0c;应用程序的主要组件包括Activity、Service、Broadcast Receiver和Content Provider。这些组件共同组成了Android应用的基本构架。以下是每个组件的详细用法&#xff1a; 1. Activity Activity是Android应用的主要组成部分&#xff0c;代表一个用户…

中电金信:向“新”而行—探索AI在保险领域的创新应用

大模型的应用已经渗透到各个领域&#xff0c;并展现出惊人的潜力。在自然语言处理方面&#xff0c;大模型用于机器翻译、文本摘要、问答系统等&#xff1b;在计算机视觉领域&#xff0c;应用于图像识别、目标检测、视频分析等&#xff1b;此外&#xff0c;大模型也应用于语音识…

使用nvm管理node版本及pnpm安装

文章目录 GithubWindows 环境Mac/Linux 使用脚本进行安装或更新Mac/Linux 环境变量nvm 常用命令npm 常用命令npm 安装 pnpmNode 历史版本 Github https://github.com/nvm-sh/nvm Windows 环境 https://nvm.uihtm.com/nvm.html Mac/Linux 使用脚本进行安装或更新 curl -o- …