web APIs总结(1)

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.mzph.cn/news/808144.shtml

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

相关文章

有时导数据代码比写SQL要快很多

一、背景 接到一个数据需求&#xff0c;是从我们的Mongo中导出的&#xff0c;但要取的值得到很深的层级&#xff0c;尝试写了半天Mongo的查询查不出来&#xff0c;问了半天大模型给的也不对&#xff0c;于是考虑写代码的方式 二、数据格式 // 1 {"_id": ObjectId(&…

考研数学|张宇《1000题》做不下来怎么办?

不要害怕,你绝对可以做下来&#xff01; 1000题分为基础题和难题&#xff0c;基础题做题来还好&#xff0c;但是难题就有点偏和怪了&#xff0c;这是大部分考研人对于1000题的一致评价。 我觉得你可以这么做&#xff1a; 基础阶段可以做1000里面比较基础&#xff0c;简单的题…

ReLU Strikes Back: Exploiting Activation Sparsity in Large Language Models

iclr 2024 oral reviewer 评分 688 1 intro 目前LLM社区中通常使用GELU和SiLU来作为替代激活函数&#xff0c;它们在某些情况下可以提高LLM的预测准确率 但从节省模型计算量的角度考虑&#xff0c;论文认为经典的ReLU函数对模型收敛和性能的影响可以忽略不计&#xff0c;同时…

SAP SD学习笔记03 - SD模块中的主数据

上一章讲了SD中的组织单位和SD的简单流程。 SAP SD学习笔记02 - 销售流程中的组织单位-CSDN博客 SAP SD学习笔记01 - 简单走一遍SD的流程&#xff1a;受注&#xff0c;出荷&#xff0c;请求-CSDN博客 这一章讲SD中的主数据&#xff1a; - 得意先Master&#xff08;客户&…

LeetCode404:左叶子之和

题目描述 给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 代码 class Solution { public:int getLeftSum(TreeNode* node, int& sum) {if (node nullptr || (node->leftnullptr &&node->rightnullptr)) return 0;if (node->left) getLeftS…

企业营销线索溯源:拒绝合规风险!

天眼销的线索溯源功能已经上线一段时间了。 溯源功能主要是查找从天眼销下载的企业营销线索的来源&#xff0c;通过输入相应的数据&#xff0c;就能查到该营销线索的来源网站。 虽然我们在所有的宣传介绍都表明我们的数据都是从公开渠道获取的&#xff0c;但是还是有很多用户会…

electron的webview和内嵌网页如何通信

在 Electron 的世界里&#xff0c;webview 标签相当于一个小盒子&#xff0c;里面可以装一个完整的网页&#xff0c;就像一个迷你浏览器。当你想和这个小盒子里的内容说话时&#xff08;也就是进行通信&#xff09;&#xff0c;这里有几个方法可以帮你做到&#xff1a; 这里只写…

golang es查询的一些操作,has_child,inner_hit,对索引内父子文档的更新

1.因为业务需要查询父文档以及其下子文档&#xff0c;搞了很久才理清楚。 首先还是Inner_hits,inner_hits只能用在nested,has_child,has_parents查询里面 {"query": {"nested": {"path": "comments","query": {"match…

损失函数篇 | YOLOv8更换损失函数之Powerful-IoU(2024年最新IoU)

前言:Hello大家好,我是小哥谈。损失函数是机器学习中用来衡量模型预测值与真实值之间差异的函数。在训练模型时,我们希望通过不断调整模型参数,使得损失函数的值最小化,从而使得模型的预测值更加接近真实值。不同的损失函数适用于不同的问题,例如均方误差损失函数适用于回…

【随笔】Git 高级篇 -- 相对引用1 main^(十二)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

lomobok源码编译学习笔记(1)

lomobok学习笔记&#xff08;1&#xff09; 项目导入 lombok的github地址 GitHub - projectlombok/lombok: Very spicy additions to the Java programming language. 开发工具 idea不知道为啥&#xff0c;装上ant工具也不好用&#xff0c;eclipse默认自带有ant,不需要装。…

基于SpringBoot+vue网上点餐系统包含万字文档

基于SpringBoot的网上点餐系统包含万字文档 项目视频演示: springboot027网上点餐系统包含万字文档 开发系统:Windows 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要…

这一次,阿里能完成变革么

更多精彩内容在公众号。 马云在阿里内网发表题为《致改革 致创新》的帖子。释放支持继续改革信号。全文参考下图 马云在最近的发言中首先引用了阿里巴巴集团董事局主席蔡崇信的一次采访&#xff0c;表示对蔡崇信坦率地承认过去错误的勇敢态度表示赞赏。马云强调&#xff0c;犯错…

Python - 深度学习系列32 - glm2接口部署实践

说明 前阵子&#xff0c;已经对glm2的接口部署做了镜像化。本次的目的是&#xff1a; 1 测试在隔了一阵子&#xff08;忘记&#xff09;的情况下&#xff0c;快速部署时是否有障碍&#xff0c;是不是足够方便2 在算网机环境下&#xff0c;能否快速的实现部署。仅考虑文件方式…

「每日跟读」英语常用句型公式 第9篇

「每日跟读」英语常用句型公式 第9篇 1. Go-to ___ 第一选择___ What’s your go-to snack when you’re hungry? (你饿的时候第一选择的零食是什么&#xff1f;) Who’s your go-to friend for advice? (你第一选择的朋友是谁来寻求建议&#xff1f;) Which is your go-t…

Python实现BOA蝴蝶优化算法优化BP神经网络回归模型(BP神经网络回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算…

智慧矿山视频智能监控与安全监管方案

一、行业背景 随着全球能源需求的日益增长&#xff0c;矿业行业作为国民经济的重要支柱&#xff0c;其发展日益受到广泛关注。然而&#xff0c;传统矿山管理模式的局限性逐渐显现&#xff0c;如生产安全、人员监管、风险预警等方面的问题日益突出。因此&#xff0c;智慧矿山智…

降本增效,赋予利润弹性,李子园努力践行“以投资者为本”理念降本增效,业绩稳步提升

4月9日&#xff0c;李子园发布2023年年度报告&#xff0c;披露了2023年业绩及经营数据。 2023年&#xff0c;李子园实现营业收入约14.1亿元&#xff0c;同比增长0.6%&#xff1b;实现归属于上市公司股东的扣非净利润约2.19亿元&#xff0c;同比增长16.75%。 数据显示&#xff…

Dubbo 序列化

Dubbo 序列化 1、什么是序列化和反序列化 序列化&#xff08;serialization&#xff09;在计算机科学的资料处理中&#xff0c;是指将数据结构或对象状态转换成可取用格式&#xff08;例如存成文件&#xff0c;存于缓冲&#xff0c;或经由网络中发送&#xff09;&#xff0c;…

内网穿透的应用-如何使用Docker本地部署Dify LLM结合内网穿透实现公网访问本地开发平台

文章目录 1. Docker部署Dify2. 本地访问Dify3. Ubuntu安装Cpolar4. 配置公网地址5. 远程访问6. 固定Cpolar公网地址7. 固定地址访问 本文主要介绍如何在Linux Ubuntu系统以Docker的方式快速部署Dify,并结合cpolar内网穿透工具实现公网远程访问本地Dify&#xff01; Dify 是一款…