web APIs总结(1)

news2025/6/18 7:00:15

1. 根据CSS选择器来获取DOM元素 (重点)

  • 获取一个DOM元素我们使用谁?能直接操作修改吗?
  • querySelector() 可以
  • 返回值:CSS选择器匹配的第一个元素,一个 HTMLElement对象。如果没有匹配到,则返null

  • 获取多个DOM元素我们使用谁?能直接修改吗? 如果不能可以怎么做到修改?
  • querySelectorAll() 不可以, 得到的是伪数组,需要for遍历得到每一个元素
  • 返回值:CSS选择器匹配的NodeList 对象集合
  • (注:小括号里面的参数里面都要写css选择器,必须是字符串,也就是必须加引号)

2. 操作元素内容

元素.innerText 属性:将文本内容添加/更新到任意标签位置。显示纯文本,不解析标签
元素.innerHTML 属性:将文本内容添加/更新到任意标签位置.会解析标签,多标签建议使用模板字符

3. 通过 style 属性操作CSS

语法:对象.style.样式属性 = ‘值’
(注:1. 修改样式通过style属性引出。2. 如果属性有-连接符,需要转换为小驼峰命名法。3. 赋值的时候,需要的时候不要忘记加css单位

如果需要修改一个div盒子的样式,比如 padding-left, 如何写?
element.style.paddingLeft = ‘300px’ 小驼峰命名

4. 操作类名(className) 操作CSS

可以同时修改多个样式,但是直接使用 className 赋值会覆盖以前的类名
语法:

//active是一个CSS类名
元素.className = 'active'

5. 通过 classList 操作类控制CSS

为了解决className 容易覆盖以前的类名,我们可以通过classList方式追加和删除类名
语法:

//追加一个类
元素.classList.add('类名')
//删除一个类
元素.classList.remove('类名')
//切换一个类(有该类名就删除,没有就加上)(重要)
元素.classList.toggle('类名')

6. 操作表单元素属性

  • (点击眼睛,可以看到密码,本质是把表单类型转换为文本框)
表单.value = '用户名'
表单.type = 'password'
  • 如果为true 代表添加了该属性 如果是false 代表移除了该属性。
    比如: disabled、checked、selected
表单.checked = true//选中按钮
表单.disabled = true//禁用按钮

7. 定时器-间歇函数

每隔一段时间需要自动执行一段代码,不需要我们手动去触发(例如:网页中的倒计时)
开启定时器:
setInterval(函数, 间隔时间)

function repeat() {
	console.log('一秒执行一次')
}, 1000)
//每隔一秒时间调用repeat函数
setInterval(repeat, 1000)

作用:每隔一段时间调用这个函数。间隔时间单位是毫秒(注:函数名字不需要加括号。定时器返回的是一个id数字)
关闭定时器:
let 变量名 = setInterval(函数名, 间隔时间);clearInterval(变量名)

let timer = setInterval(function(){
	console.log('一秒执行一次')
},1000)
clearInterval(timer)

8. 事件监听

语法:
元素对象.addEventListener('事件类型',要执行的函数)

<button>点击</button>
<script>
	const btn = document.querySelector('button')
    btn.addEventListener('click', function () {
      alert('你早呀~')
    })
</script>

事件监听三要素:
事件源:那个dom元素被事件触发了,要获取dom元素
事件类型:用什么方式触发,比如鼠标单击 click、鼠标经过 mouseover 等
事件调用的函数:要做什么事
(注:事件类型要加引号函数是点击之后再去执行,每次点击都会执行一次

9. 事件类型

  • 鼠标事件(鼠标触发):click 鼠标点击。mouseenter 鼠标经过。mouseleave 鼠标离开
  • 焦点事件(表单获取光标):focus 获得焦点。blur 失去焦点
  • 键盘事件(键盘触发):Keydown 键盘按下触发。Keyup 键盘抬起触发
  • 文本事件(表单输入触发):input 用户输入事件

10. 说说this吧,this指向谁

  • 非严格模式下,普通函数中,this指向的是window
  • 若是事件监听函数,this指向的是调用者
  • 箭头函数是没有this的
  • 若想改变this的指向方向,可用applycall
  • 【谁调用, this 就是谁】 是判断 this 指向的粗略规则

11. 回调函数

  • 将函数 A 作为参数传递给函数 B 时,我们称函数 A 为回调函数
  • 使用场景:setInterval里的函数和事件监听里的函数,写完之后不会立马执行。
    定时器每隔一段时间便回头调用这个函数,事件监听每点击一次,也回头调用该函数。
  • 使用匿名函数做为回调函数比较常见
    在这里插入图片描述

12. 事件冒泡

  • 捕获阶段(加true)是 从父到子。**冒泡阶段(重要)**是从子到父
  • 当一个元素触发事件后,会依次向上调用所有父级元素的 同名事件(如:都是click点击事件)
  • 事件冒泡是默认存在的

13. 阻止冒泡如何做?

因为默认就有冒泡模式的存在,所以容易导致事件影响到父级元素

事件对象.stopPropagation()

14. 阻止元素默认行为如何做?

我们某些情况下需要阻止默认行为的发生,比如 阻止 链接的跳转,表单域跳转

e.preventDefault()

15. 解绑事件

**(注意:匿名函数无法被解绑)**所以要给函数命名

function fn() {
alert('点击了')
}
btn.addEventListener('click', fn)
// L2 事件监听移除解绑
btn.removeEventListener('click', fn)

16. 鼠标经过事件

  • mouseover 和 mouseout 会有冒泡效果
  • mouseenter 和 mouseleave 没有冒泡效果(推荐

17.事件委托的好处

  • 原理:给父元素注册事件,当我们触发子元素的时候,会冒泡到父元素身上,从而触发父元素的事件
  • 实现:事件对象.target.tagName 可以获得真正触发事件的元素
    (注:e.target是我们点击的对象)

18. 自定义属性

定义的id值为字符串

<div data-id="0"></div>
<script>
const div = document.querySelector('div')
console.log(div.dataset.id) // 0 
</script>

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

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

相关文章

数字安全证书是什么?怎么申请?

数字安全证书&#xff0c;也被称为SSL证书、TLS证书或HTTPS证书&#xff0c;是一种基于公钥基础设施的电子文件&#xff0c;用于验证在线实体&#xff08;如网站、服务器、电子邮件用户等&#xff09;的身份&#xff0c;并建立安全的加密连接。具体来说&#xff0c;数字证书包含…

LeetCode——622设计循环队列

. - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/design-circular-queue/ 1.题目 设计你的循环队列实现。 循环队列是一…

前端开发攻略---Vue通过自定义指令实现元素平滑上升的动画效果(可以自定义动画时间、动画效果、动画速度等等)。

1、演示 2、介绍 这个指令不是原生自带的&#xff0c;需要手动去书写&#xff0c;但是这辈子只需要编写这一次就好了&#xff0c;后边可以反复利用。 3、关键API IntersectionObserver IntersectionObserver 是一个用于监测元素是否进入或离开视口&#xff08;viewport&#x…

Python零基础从小白打怪升级中~~~~~~~文件和文件夹的操作 (1)

第七节&#xff1a;文件和文件夹的操作 一、IO流&#xff08;Stream&#xff09; 通过“流”的形式允许计算机程序使用相同的方式来访问不同的输入/输出源。stream是从起源&#xff08;source&#xff09;到接收的&#xff08;sink&#xff09;的有序数据。我们这里把输入/输…

邮件群发提高成功率的技巧?如何群发邮件?

邮件群发有哪些注意事项&#xff1f;怎么有效分析邮件群发效果&#xff1f; 邮件群发已经成为一种高效的信息传递手段。然而&#xff0c;很多人发现&#xff0c;尽管发送了大量的邮件&#xff0c;但回应率却并不理想。那么&#xff0c;如何才能在邮件群发中提高成功率呢&#…

SWM341系列应用(LVGL应用)

SWM341系列之LVGL应用 1、LVGL 缓冲区的应用 现象&#xff1a;客户使用SWM34SRE时 &#xff0c;客户不使用LVGL的前提下需要手动切换缓冲区&#xff0c;但是切换的时候显示不正常&#xff1b; 分析与解决&#xff1a;需要客户手动切换的时候VBPRELOAD寄…

el-tree基础渲染

el-tree 每个节点左右布局鼠标经过接电视&#xff0c;左边文字变色&#xff0c;右边不变 <el-tree:data"list":props"defaultProps"default-expand-all:expand-on-click-node"false"><template #default"{ data }"><e…

无线网络2.4和5G的区别

无线网络2.4和5的区别 无线网络2.4GHz和5GHz的主要区别在于频率、覆盖范围、传输速度、干扰能力和穿透性。以下是详细介绍&#xff1a;12 频率不同。2.4GHz的频率较低&#xff0c;而5GHz的频率较高。频率越低&#xff0c;信号在传播过程中的损失越小&#xff0c;因此覆盖范围…

【科研】搜索文献的网站

文章目录 paperswithcode【最新论文&#xff0c;代码】huggingface【大语言模型&#xff0c;最新论文】dblp【关键词搜索】arxiv【最新文章】semanticscholar【相关引用查询】connectedpapers【相关引用查询】github【工程&#xff0c;代码&#xff0c;论文开源代码】 paperswi…

[蓝桥杯 2018 国 C] 迷宫与陷阱

题目&#xff1a; 思路&#xff1a; 代码&#xff1a; #include <bits/stdc.h> using namespace std; const int N1e310; char g[N][N];//输入&#xff1a;图的数组 int vis[N][N]; /* 剪枝&#xff1a;记录magic的个数&#xff08;一个点经过两次&#xff0c;magic越大…

高性能计算与深度学习结合;提升云人工智能基础设施可靠性;基于心理测量学的通用型人工智能评估;模仿人脑思维模式的视觉语言规划框架

编者按&#xff1a;欢迎阅读“科研上新”栏目&#xff01;“科研上新”汇聚了微软亚洲研究院最新的创新成果与科研动态。在这里&#xff0c;你可以快速浏览研究院的亮点资讯&#xff0c;保持对前沿领域的敏锐嗅觉&#xff0c;同时也能找到先进实用的开源工具。 本期内容速览 …

福克斯有什么明显的优缺点吗?

福克斯有什么明显的优缺点吗&#xff1f; - 知乎 https://www.zhihu.com/question/22125956/answer/554288301 作者&#xff1a;赵小瑚 链接&#xff1a;https://www.zhihu.com/question/22125956/answer/554288301 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作…

【Unity】组件组合使用心得(单行可自动拓展Scroll View)

在这之前&#xff0c;一直是在使用Scroll View进行滑动内容设置&#xff0c;但设置的都是不明不白的&#xff0c;而且有的时候设置好了之后也不知道是为什么&#xff0c;总感觉哪里不对劲&#xff0c;而且好也不知道为什么好&#xff0c;可能是长时间在做管理上的内容&#xff…

企业鸿蒙原生应用元服务备案实操基本材料要求

一、要提前准备的主要材料包括 域名&#xff0c;服务器&#xff0c;包名&#xff0c;公钥&#xff0c;MD5值&#xff0c;法人身份证正反两面&#xff0c;邮箱&#xff0c;手机号2个。 域名是备案过的&#xff0c;应为要求域名能打开&#xff0c;还要悬挂备案号。 操作时要提前沟…

java包目录命名

包目录命名 config controller exception model common entity enums reponse request repository security service util

看不懂来打我,vue3如何将template编译成render函数

前言 在之前的 通过debug搞清楚.vue文件怎么变成.js文件 文章中我们讲过了vue文件是如何编译成js文件&#xff0c;通过那篇文章我们知道了&#xff0c;template编译为render函数底层就是调用了vue/compiler-sfc包暴露出来的compileTemplate函数。由于文章篇幅有限&#xff0c;…

数据降维方法-主成分分析(PCA)

目录 一、前言 二、向量的表示及基变换 三、基变换 四、协方差矩阵 五、协方差 六、优化目标 一、前言 主成分分析(Principal Component Analysis) 用途&#xff1a;降维中的常用手段 目标&#xff1a;提取最有价值的信息&#xff08;基于方差&#xff09; 问题&#x…

使用 Citavi 和 NVivo 简化您的文献综述和研究分析

NVivo 是一款支持定性研究方法和混合研究方法的软件。它可以帮助您收集、整理和分析访谈、焦点小组讨论、问卷调查、音频等内容。NVivo&#xff08;1.0版&#xff09;是Windows和Mac的主要版本。遵循最新的主要版本NVivo 12&#xff08;Windows和Mac&#xff09;。 NVivo 强大…

前端开发攻略---利用Flexbox和Margin实现智能布局:如何巧妙分配剩余空间,让你的网页设计更上一层楼?

1、演示 2、flex布局 Flex布局是一种用于Web开发的弹性盒子布局模型&#xff0c;它可以让容器内的子元素在空间分配、对齐和排列方面具有更大的灵活性。以下是Flex布局的基本用法&#xff1a; 容器属性&#xff1a; display: flex;&#xff1a;将容器指定为Flex布局。flex-dire…

面试(02)————Java基础和集合

一、Java基础知识 1、面向对象的特征 2、Java 的基本数据类型有哪些 3、JDK JRE JVM 的区别 4、重载和重写的区别 5、Java中和equals的区别 6 、String、StringBuffer、StringBuilder三者之间的区别 7、接口和抽象类的区别是什么&#xff1f; 8、反射 9、jdk1.8 的新特…