Dom获取属性操作

目录

1. 基本认知

1.1 目的和内容

1.2 什么是DOM

1.3 DOM对象

1.4 DOM树

2. 获取DOM元素对象

2.1 选择匹配到的第一个元素

2.2 选择匹配到的多个元素

2.3 其他获取DOM元素方法

3. 操作元素内容

3.1 元素对象.innerText 属性

3.2 元素对象.innerHTML 属性

4. 操作元素属性

4.1 操作元素常用属性

4.2 操作元素样式属性

4.3 操作表单元素属性

4.4 自定义属性

5. 定时器-间歇函数


1. 基本认知

1.1 目的和内容
目的: 就是使用 JS 去操作 html网页 和 浏览器,实现各种网页特效。
内容: DOM (文档对象模型)、 BOM (浏览器对象模型)

1.2 什么是DOM
  • DOM 是 Document Object Model——文档对象模型 的简称
  • DOM 是 W3C组织推荐的一套操作文档结构、样式和内容的技术标准(所有的浏览器都遵循了)
  • 一句话概括:DOM是浏览器提供的一套专门用来 操作网页 的功能

DOM作用:开发网页内容特效和实现用户交互

1.3 DOM对象
DOM技术的核心
  • 以对象的方式描述整个网页,定义了表示和修改网页内容所需的对象
  • 网页中的任何内容都可以用对象来表示,操作这个对象会自动作用到网页身上
    • 整个html网页用 文档对象 来表示
    • 网页中的标签用 标签对象(元素对象)来表示

DOM的核心思想:把网页内容当做 对象 来处理

DOM对象:浏览器根据html标签生成的 JS对象
  • 标签上的所有属性都可以在这个对象上面找到
  • 修改这个对象的属性会自动映射到标签身上

document 对象:

  • DOM 里表示整个网页(整个文档)的对象
  • 所以它提供的属性和方法都是用来访问和操作网页内容的
    • 例:document.write()
  • 网页所有内容都在document里面
1.4 DOM树
DOM树是什么
  • DOM技术将 HTML 文档和标签映射成对象后,形成了类似“倒着的大树”的组织结构
  • HTML文档的树状结构,我们称之为 文档树 DOM 树
DOM树的作用
  • DOM文档树直观的体现了标签与标签之间的关系
  • 通过DOM树可以获取到网页上的任意内容

2. 获取DOM元素对象

2.1 选择匹配到的第一个元素
语法:document.querySelector("css选择器")
参数:包含一个或多个有效的CSS选择器 字符串
返回值: CSS选择器匹配的 第一个元素 ,一个 HTMLElement对象。 如果没有匹配到,则返回null。
技术文档: https://developer.mozilla.org/zh-CN/docs/Web/API/Document/querySelector
2.2 选择匹配到的多个元素
语法:document.querySelectorAll("css选择器")
参数:包含一个或多个有效的CSS选择器 字符串
返回值:CSS选择器匹配的 NodeList 元素对象集合( 伪数组
例如: document.querySelectorAll("ul li")
得到的是一个 伪数组
  • 有长度有索引号的数组
  • 但是没有 pop() push() 等数组方法
想要得到里面的每一个对象,则需要遍历(for)的方式获得。
注意: 哪怕只有一个元素,通过querySelectAll() 获取过来的也是一个 伪数组 ,里面只有一个元素
2.3 其他获取DOM元素方法

3. 操作元素内容

3.1 元素对象.innerText 属性
  • 元素对象的innerText属性对应着标签的内容
  • 通过innerText属性,就可以获取/更新标签的内容
  • 纯文本,不解析标签

举例:

3.2 元素对象.innerHTML 属性
  • 元素对象的innerHTML属性对应着标签的内容
  • 通过innerHTML属性,就可以获取/更新标签的内容
  • 会解析标签,多标签建议使用模板字符

4. 操作元素属性

4.1 操作元素常用属性
通过 JS 设置/修改标签元素的属性,比如通过 src更换图片
最常见的属性比如: href、title、src 等
语法:对象.属性 = 值
举例:

4.2 操作元素样式属性
通过 style 属性操作CSS
语法:对象.style.样式属性 = 值
举例:

操作类名(className) 操作CSS
如果要修改的样式比较多,直接通过style属性修改比较繁琐,我们可以通过修改标签的类名实现。
语法:元素.className = "active"  // active 是一个css类名
注意:
  1. 由于class是关键字,所以使用className代替
  2. className是使用新值旧值, 如果需要添加一个类,注意保留之前的类名

通过 classList 操作类控制CSS

使用className 会覆盖以前的类名,我们可以通过classList方式 追加 删除 类名
语法:

4.3 操作表单元素属性
  • 表单很多情况,也需要修改属性,比如点击眼睛,可以看到密码,本质是把表单类型转换为文本框
  • 表单标签的大部分属性的操作,和普通标签属性的操作没有任何区别

获取:DOM对象.属性名

设置:DOM对象.属性名 = 新值
举例:

  • 表单标签有些属性是表示状态的,比如: disabled、checked、selected
  • 状态属性获得的是:布尔值。
  • 修改状态属性时,使用布尔值修改,为true 代表添加了该属性,false 代表移除了该属性
4.4 自定义属性
标准属性: 标签天生自带的属性,比如class id title等, 可以直接使用“.属性名”操作
自定义属性:
  • html5中推出来了data-* 格式的自定义属性(在标签上记录一些信息
  • 给标签添加自定义属性一律以data- 开头
  • 在DOM对象上以dataset对象方式获取

举例:

5. 定时器-间歇函数

1. 开启定时器

作用:每隔一段时间调用这个函数,间隔时间单位是毫秒
举例:

2. 关闭定时器

一般不会刚创建就停止,而是满足一定条件再停止
举例:

注意:

  • 函数名字不需要加括号
  • 定时器返回的是一个id数字

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springcloud微服务搭建多数据源(mysql,oracle,postgres,等等)管理模块,支持通过注解方式切换不同类型的数据库

1.背景 同一套微服务管理系统,业务完全一样,但不同的客户可能要求使用自己熟悉的数据库,比如,mysql,oracle,postgres,还有一些国产数据库。如果能够将数据库模块独立出来,兼容各家的…

IDEA启动项目报错:Error running ‘‘: Command line is too long.

1、在workspace.xml 2、 在标签 <component name"PropertiesComponent"> 添加 <property name"dynamic.classpath" value"true" />

MySQL 运维篇

回顾基本语句&#xff1a; 数据定义语言(DDL) 这类语言用于定义和修改数据库的结构&#xff0c;包括创建、删除和修改数据库、 表、视图和索引等对象。 主要的语句关键字包括 CREATE 、 DROP 、 ALTER 、 RENAME 、 TRUNCATE 等。 create database 数据库 &#xff1b; cr…

【MySQL | 第十一篇】一条SQL语句在MySQL的执行过程

文章目录 11.一条SQL语句在MySQL的执行过程11.1MySQL整体架构11.2SQL语句在Server层执行流程11.3拓展&#xff1a;InnoDB存储引擎的更新操作11.3.1问题&#xff1a;为什么写了redolog日志还要写binlog日志&#xff1f;11.3.2问题&#xff1a;为什么要两阶段提交&#xff1f;11.…

《QT实用小工具·四十七》可交互的创意动态按钮

1、概述 源码放在文章末尾 该项目实现了可交互的创意动态按钮&#xff0c;包含如下功能&#xff1a; 所有颜色自定义 鼠标悬浮渐变 两种点击效果&#xff1a;鼠标点击渐变 / 水波纹动画&#xff08;可多层波纹叠加&#xff09; 额外鼠标移入/移出/按下/弹起的实时/延迟共8种事…

springboot 自动配置源码解读

什么是自动装配 当我们程序依赖第三方功能组件时&#xff0c;不需要手动将这些组件类加载到IOC容器中。例如 当程序需要用到redis时&#xff0c;在pom.xml文件中引入依赖&#xff0c;然后使用依赖注入的方式直接从IOC容器中拿到相应RedisTemplate实例。 SpringBootApplication …

【已解决】json文件太大无法打开怎么办+ijson报错

下载了一个json文档&#xff0c;尝试了全部的编辑器都打不开。。。 搜了搜或许可以使用ijson GitHub - ICRAR/ijson: Iterative JSON parser with Pythonic interfaces "Ijson is an iterative JSON parser with standard Python iterator interfaces." 示例代码&…

【C++ —— 多态】

C —— 多态 多态的概念多态的定义和实现多态的构成条件虚函数虚函数的重写虚函数重写的两个例外协变&#xff1a;析构函数的重写 C11 override和final重载、覆盖(重写)、隐藏(重定义)的对比 抽象类概念接口继承和实现继承 多态的继承虚函数表多态的原理动态绑定和静态绑定 单继…

VTK 的可视化方法:Glyph

VTK 的可视化方法&#xff1a;Glyph VTK 的可视化方法&#xff1a;Glyph标量、向量、张量将多边形数据的采集点法向量标记成锥形符号参考 VTK 的可视化方法&#xff1a;Glyph 模型的法向量数据是向量数据&#xff0c;因此法向量不能像前面讲到的通过颜色映射来显示。但是可以通…

25 JavaScript学习:var let const

JavaScript全局变量 JavaScript中全局变量存在多种情况和定义方式&#xff0c;下面详细解释并提供相应的举例&#xff1a; 使用var关键字声明的全局变量&#xff1a; var globalVar "我是全局变量";未使用var关键字声明的变量会成为全局变量&#xff08;不推荐使用&…

【前端】-【防止接口重复请求】

文章目录 需求实现方案方案一方案二方案三 需求 对整个的项目都做一下接口防止重复请求的处理 实现方案 方案一 思路&#xff1a;通过使用axios拦截器&#xff0c;在请求拦截器中开启全屏Loading&#xff0c;然后在响应拦截器中将Loading关闭。 代码&#xff1a; 问题&…

(刷题记录2)随机链表的复制

[刷题记录2]随机链表的复制 题目信息&#xff1a;题目思路(环境来自力扣OJ的C语言)&#xff1a;复杂度&#xff1a;代码和解释&#xff1a;1.遍历一遍原链表的同时&#xff0c;在每个原节点后面插入一个相同的新节点&#xff0c;共插入 n 个新节点。2.利用两者联系&#xff0c;…

神奇的Vue3 - 组件探索

神奇的Vue3 第一章 神奇的Vue3—基础篇 第二章 神奇的Vue3—Pinia 文章目录 神奇的Vue3了解组件一、注册组件1. 全局注册​2. 局部注册3. 组件命名 二、属性详解1. Props&#xff08;1&#xff09;基础使用方法&#xff08;2&#xff09;数据流向&#xff1a;单项绑定原则&…

ThreeJS:Mesh网格与三维变换

Mesh网格 ThreeJS中&#xff0c;Mesh表示基于以三角形为多边形网格(polygon mesh)的物体的类&#xff0c;同时也作为其它类的基类。 通过Mesh网格&#xff0c;我们可以组合Geometry几何体与Material材质属性&#xff0c;在3D世界中&#xff0c;定义一个物体。例如&#xff1a;之…

vue2(4)之scoped解决样式冲突/组件通信/非父子通信/ref和$refs/异步更新/.sync/事件总线/provide和inject

vue2 一、学习目标1.组件的三大组成部分&#xff08;结构/样式/逻辑&#xff09;2.组件通信3.综合案例&#xff1a;小黑记事本&#xff08;组件版&#xff09;4.进阶语法 二、scoped解决样式冲突**1.默认情况**&#xff1a;2.代码演示3.scoped原理4.总结 三、data必须是一个函数…

Copilot Venture Studio創始合伙人楊林苑確認出席“邊緣智能2024 - AI開發者峰會”

隨著AI技術的迅猛發展&#xff0c;全球正逐步進入邊緣計算智能化與分布式AI深度融合的新時代&#xff0c;共同書寫著分布式智能創新應用的壯麗篇章。邊緣智能&#xff0c;作為融合邊緣計算和智能技術的新興領域&#xff0c;正逐漸成為推動AI發展的關鍵力量。借助分布式和去中心…

由于找不到mfc140u.dll,无法继续执行的多种解决方法

在我们日常与计算机的密切互动中&#xff0c;或许不少用户都曾遇到过这样一个棘手的问题&#xff1a;系统突然弹出一个提示窗口&#xff0c;告知我们“找不到mfc140u.dll文件”。这个文件是Microsoft Foundation Class&#xff08;MFC&#xff09;库的一部分&#xff0c;用于支…

提升编码技能:学习如何使用 C# 和 Fizzler 获取特价机票

引言 五一假期作为中国的传统节日&#xff0c;也是旅游热门的时段之一&#xff0c;特价机票往往成为人们关注的焦点。在这个数字化时代&#xff0c;利用爬虫技术获取特价机票信息已成为一种常见的策略。通过结合C#和Fizzler库&#xff0c;我们可以更加高效地实现这一目标&…

20240502在WIN10下给X99平台上的M6000显卡安装驱动程序

20240502在WIN10下给X99平台上的M6000显卡安装驱动程序 2024/5/2 9:32 人工智能计算领域的领导者 | NVIDIA https://www.nvidia.cn/ C:\NVIDIA\DisplayDriver\552.22\Win11_Win10-DCH_64\International IMPORTANT NOTICE -- READ CAREFULLY: -------------------------------…

pmp培训机构哪个比较好,求推荐-

寻找一个自己认为比较好的PMP培训机构千万不要盲目&#xff0c;先在网上看看大家都推荐什么&#xff0c;看一下各个机构的老学员反馈&#xff0c;这些对我们的选择有非常大的帮助&#xff0c;最起码有了一些风评上的参考&#xff0c;现状就是目前线上机构的竞争比较大&#xff…