【前端】JS - WebAPI
目 录
- 一.WebAPI 背景知识
- 什么是 WebAPI
- 什么是 API
- API 参考文档
- 二.DOM 基本概念
- 什么是 DOM
- DOM 树
- 三.获取元素
- querySelector
- querySelectorAll
- 四.事件初识
- 基本概念
- 事件三要素
- 五.操作元素
- 获取/修改元素内容(innerHTML)
- 获取/修改元素属性
- 获取/修改样式属性
- 六.操作节点
- 新增节点
- 七.代码案例
一.WebAPI 背景知识
什么是 WebAPI
前面学习的 JS 分成三个大的部分
- ECMAScript: 基础语法部分
- DOM API: 操作页面结构
- BOM API: 操作浏览器
WebAPI 就包含了 DOM + BOM.
什么是 API
API 是一个更广义的概念. 而 WebAPI 是一个更具体的概念, 特指 DOM+BOM
所谓的 API 本质上就是一些现成的函数/对象, 让程序猿拿来就用, 方便开发.
相当于一个工具箱. 只不过程序猿用的工具箱数目繁多, 功能复杂.
API 参考文档
点击这里
可以在搜索引擎中按照 “MDN + API 关键字” 的方式搜索, 也能快速找到需要的 API 文档.
二.DOM 基本概念
什么是 DOM
DOM 全称为 Document Object Model.
W3C 标准给我们提供了一系列的函数, 让我们可以操作:
- 网页内容
- 网页结构
- 网页样式
DOM 树
一个页面的结构是一个树形结构, 称为 DOM 树.
DOM 树结构形如:
重要概念:
- 文档: 一个页面就是一个 文档, 使用 document 表示.
- 元素: 页面中所有的标签都称为 元素. 使用 element 表示.
- 节点: 网页中所有的内容都可以称为 节点(标签节点, 注释节点, 文本节点, 属性节点等). 使用 node 表示.
这些文档等概念在 JS 代码中就对应一个个的对象.
所以才叫 “文档对象模型” .
三.获取元素
JS获取元素有很多种方式,此处只介绍一种最强大,最通用的方式。
querySelector
querySelector 是 document的方法,document 是一个页面中内置的全局对象.(由浏览器提供出来的)页面加载成功,显示出来了,此时 document 就有了。
此时,就可以使用 elem 来表示这个h1标签,同时可以通过 elem 获取到 h1 标签中的属性,也可以用来修改了。
当有多个 h1 的时候,标签选中的 h1 就是第一个
querySelectorAll
要想选多个元素,直接 querySelectorAll 即可,用法和 querySelector 一样。
四.事件初识
基本概念
用户针对浏览器页面的每个动作都可以视为是 “事件”。
鼠标移动,鼠标点击,鼠标双击,鼠标拖动,键盘按键,浏览器窗口改变,浏览器位置改变…
JS 要构建动态页面, 就需要感知到用户的行为.
用户对于页面的一些操作(点击, 选择, 修改等) 操作都会在浏览器中产生一个个事件, 被 JS 获取到, 从而进行更复杂的交互操作
浏览器就是一个哨兵, 在侦查敌情(用户行为). 一旦用户有反应(触发具体动作), 哨兵就会点燃烽火台的狼烟(事件), 后方就可以根据狼烟来决定下一步的对敌策略.
事件三要素
- 事件源: 哪个元素触发的
- 事件类型: 是点击, 选中, 还是修改?
- 事件处理程序: 事件出现之后要执行哪个代码
例如上述代码:h1 就是事件源,onclick 就是事件类型:点击事件,alert(‘hello’) 就是事件处理程序。
五.操作元素
获取/修改元素内容(innerHTML)
上述代码是把 JS 嵌入到 HTML 中了,如果 JS 代码简单,那还好,如果 JS 代码复杂,直接嵌入的方式就不太好。
本来 onclick 是空。这样的赋值,就让 onclick 有东西了,用户点击元素的时候,浏览器会自动执行到 onclick 对应的方法
但是此处报错了:
不能给null设置 onclick 属性
elem 成了 null,自然不能 onclick,然后 elem 为啥是 null? 说明上述 querySelector 没查到结果,检查选择器写的对不对,一检查发现选择器不应该为 . ,发现它是 id,应该是 #。
在这里打印的结果却是在控制台里面而不是在页面,那我们如何在页面打印呢?
当我们在刷新页面的时候会出现如下画面
多次点击后
、
设计一个自增的计数器,每次点击按钮都会自增加一
每次点击都会自增 +1
获取/修改元素属性
显示隐藏密码:
获取/修改样式属性
行内样式操作
element.style.[属性名] = [属性值];
相当于是给元素加了内联样式(style属性来表示的样式)
此处的单位非常关键,如果不写单位,光写个100,大概率是不生效的。
点击前:
点击后:
-提出来之后,这里的属性名,就不是带–的了,而是变成了驼峰。
-在js 里是不能作为变量名的,css里其实有很多的属性是这种的。
类名样式操作
element.className = [CSS 类名];
直接指定某个元素应用上某个css类名.
日间模式 夜间模式 相互切换:
点击前 (日间模式):
点击后 (夜间模式):
六.操作节点
操作节点,这个是针对页面上的元素进行增删
新增节点
- 创建元素节点
使用 createElement 方法来创建一个元素
- 插入节点到 dom 树中
先确定要把新元素放到哪个父节点下,根据父节点,使用 appendChild 方法。
另外还有一个 insertBefore 也能实现插入~~插入到某个子元素的前面.
- 删除节点
先确定要删除元素的父节点,然后再确定要删除的节点
删除前:
删除后:
七.代码案例
- 猜数字
先生成一个 1-100 的随机正数,让用户输入一个要猜的数字,程序来提示,是猜的高了,低了,对了。
- 首先要先能够生成一个随机数字
- 然后需要在页面上有一个输入框
- 接下来还需要有一个 ‘提交按钮’
- 最后还得有区域来显示结果
由于 JS 的 Math.random()生成的随机数,是一个[0,1)之间的小数,那么我么需要将 N*100+1 即可得到区域为 [1,101),再向下取整即可得到 [0,100]的区域。
- 表白墙
相关文章:
【前端】JS - WebAPI
目 录 一.WebAPI 背景知识什么是 WebAPI什么是 APIAPI 参考文档 二.DOM 基本概念什么是 DOMDOM 树 三.获取元素querySelectorquerySelectorAll 四.事件初识基本概念事件三要素 五.操作元素获取/修改元素内容(innerHTML)获取/修改元素属性获取/修改样式属…...
H5+Vue3编写官网,并打包发布到同一个域名下
背景 因为html5有利于搜索引擎抓取和收录我们网站更多的内容,对SEO很友好,可以为网站带来更多的流量,并且多端适配,兼容性和性能都非常不错,所以使用h5来编写官网首页。 因为用户个人中心可以通过官网跳转,不需要被浏…...
黑马mysql教程笔记(mysql8教程)基础篇——函数(字符串函数、数值函数、日期函数、流程函数)
参考文章1:https://www.bilibili.com/video/BV1Kr4y1i7ru/ 参考文章2:https://dhc.pythonanywhere.com/article/public/1/ 文章目录 基础篇函数字符串函数常用函数使用示例实例:更新已有的所有员工号,使其满足5位数长度ÿ…...
Python武器库开发-基础篇(一)
前言 以Python编程为主,围绕渗透测试展开的一门专栏。专栏内容包括: Python基础编程(Python基础、语法、对象、文件操作,错误和异常),Python高级编程(正则表达式、网络编程、WEB编程࿰…...
Qt (QFileDialogQColorDialogQFontDialog) 对话框实战
目录 一、QFileDialog 类 (文件对话框) 二、QColorDialog 类(颜色对话框) 三、QFontDialog 类(字体对话框类) 一、QFileDialog 类 (文件对话框) QFileDialog 是 Qt 框架中的一个类,用于在应用程序中提供文件对话框。它允许用户选择文件或目录,并且可…...
2.SpringSecurity - 处理器简单说明
文章目录 SpringSecurity 返回json一、登录成功处理器1.1 统一响应类HttpResult1.2 登录成功处理器1.3 配置登录成功处理器1.4 登录 二、登录失败处理器2.1 登录失败处理器2.2 配置登录失败处理器2.3 登录 三、退出成功处理器3.1 退出成功处理器3.2 配置退出成功处理器3.3 退出…...
AGI热门方向:国内前五!AI智能体TARS-RPA-Agent落地,实在智能打造人手一个智能助理
早在 1950 年代,Alan Turing 就将「智能」的概念扩展到了人工实体,并提出了著名的图灵测试。这些人工智能实体通常被称为 —— 代理(Agent)。 代理这一概念起源于哲学,描述了一种拥有欲望、信念、意图以及采取行动能力…...
运动品牌如何做到“全都要”?来看看安踏的答案
文 | 螳螂观察 作者 | 易不二 运动鞋服是兼具高景气和清晰格局的优质消费赛道。 中信证券给出的这一预测,欧睿国际也做出了更具体的测算:预计到2027年,中国运动服饰市场规模有望以约为8.7%的年复合增长率,突破5500亿元人民币。…...
LeetCode75——Day6
文章目录 一、题目二、题解 一、题目 151. Reverse Words in a String Given an input string s, reverse the order of the words. A word is defined as a sequence of non-space characters. The words in s will be separated by at least one space. Return a string …...
http代理有什么好处,怎么通过http代理服务安全上网呢?
通过http代理上网是一种常见的网络代理方式。http代理是指通过代理服务器进行网络连接,以实现隐藏自己的真实IP地址、保护个人隐私等目的。下面我们将介绍通过http代理上网的好处以及如何使用http代理服务来安全上网。 一、通过http代理上网的好处 1. 保护个人隐私 …...
vue3后台管理框架之axios二次封装
在开发项目的时候避免不了与后端进行交互,因此我们需要使用axios插件实现发送网络请求。在开发项目的时候 我们经常会把axios进行二次封装。 目的: 1:使用请求拦截器,可以在请求拦截器中处理一些业务(开始进度条、请求头携带公共参数) 2:使用响应拦截器…...
你的Github账户可能被封禁!教你应对Github最新的2FA二次验证! 无地区限制, 无额外设备的全网最完美方案
1 2FA 的定义 双因素身份验证 (2FA) 是一种身份和访管理安全方法,需要经过两种形式的身份验证才能访河资源和数据,2FA使企业能够监视和帮助保护其最易受攻击的信息和网络。 2 2FA 的身份验证方法 使用双因素身份验证时有不同的身份验证方法。此处列出…...
【C语言】#define宏与函数的优劣对比
本篇文章目录 1. 预处理指令#define宏2. #define定义标识符或宏,要不要最后加上分号?3.宏的参数替换后产生的运算符优先级问题3.1 问题产生3.2 不太完美的解决办法3.3 完美的解决办法 4.#define的替换规则5. 有副作用的宏参数6. 宏与函数的优劣对比6.1 宏…...
flask基础开发知识学习
之前做了一些LLM的demo,接口用flask写的,但是涉及到后端的一些业务就感觉逻辑写的很乱,代码变成屎山,于是借助官方文档和GPT迅速补了一些知识,总结一下一个很小的模板 于是决定边学边重构之前的代码… 文章目录 代码结…...
内网和热点同时连接使用配置
解决如标题问题 查看当前永久路由信息 route print截图保存(重要) 截图保存(重要)查出来的永久路由,以防配置不成功时回退,回退方法就是下面的“添加永久路由” 删除当前的路由 0.0.0.0 是上面查出的网络地址 route delete 0.0.0.0内网IP信息 添加永久…...
C语言 形参、实参
定义 形参 形式上的参数,没有确定的值 实参 实际存在的,已经确定的参数,常量,变量,表达式,都是实参 区别 实参的值不随形参的变化而变化 在C语言中,数据传送是单向的,即只能把实…...
linux入门到精通-第四章-gcc编译器
目录 参考gcc概述gcc的工作流程 参考 gcc编译器 gcc概述 编辑器vi、记事本)是指我用它来写程序的 (编辑码),而我们写的代码语句,电脑是不懂的,我们需要把它转成电脑能懂的语句,编译器就是这样的转化工具。就是说,我…...
HCIP静态路由综合实验
题目: 步骤: 第一步:搭建上图所示拓扑; 第二步:为路由器接口配置IP地址; R1: [R1]display current-configuration intinterface GigabitEthernet0/0/0ip address 192.168.1.1 255.255.255.252 interfa…...
nginx前端配置(新)
基础配置 server {listen 80;server_name your-frontend-domain.com;# 根目录为前端网页文件所在目录root /path/to/your/frontend/files;# 默认文档(例如 index.html)index index.html;location / {try_files $uri $uri/ /index.html; #try_files 指…...
js,jquery,vue设置html标签隐藏不显示
前端 <p id"myElement"> </p>使用js将idmyElemnt的标签隐藏 使用 style.display 属性: 通过设置 style.display 属性为 "none",可以隐藏标签。 var element document.getElementById("myElement");element…...
口袋参谋:如何实时监控对手数据?
在如此激烈的淘宝天猫上开店,如何才能获取对手的数据呢? 俗话说的好,知己知彼百战百胜,那么这句话同样也适用于淘宝天猫上。 只有掌握对手推广策略以及数据,我们才有机会反超,因此做好竞品监控是运营店…...
Q-learning如何与ABC等一些元启发式算法能够结合在一起?
1、出现的问题 Q-learning能和元启发式算法(如ABC、PSO、GA、SSA等)结合在一起,实现工作流调度问题? Q-learning和ABC (Artificial Bee Colony) 等元启发式算法可以结合在一起以解决特定类型的问题。Q-learning是一种强化学习算法…...
mysql 过滤多列重复的值(保留其中一条),对单列或者多列重复的值去重
建立测试数据表 CREATE TABLE test (id int(11) NOT NULL AUTO_INCREMENT,account varchar(255) DEFAULT NULL,password varchar(255) DEFAULT NULL,deviceId varchar(255) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT11 DEFAULT CHARSETutf8mb4;INSERT INT…...
面向红队的自动化引擎工具
gogo 介绍 面向红队的、高度可控的可拓展的自动化引擎。特征如下: 自由的端口配置 支持主动/主动指纹识别 关键信息提取,如标题、证书以及自定义提取信息的正则 支持nuclei poc,poc目录:https://chainreactors.github.io/wiki/…...
Python库学习(十):Matplotlib绘画库
1. 介绍 Matplotlib 是一个用于绘制图表和可视化数据的 Python 库。它提供了丰富的绘图工具,可以用于生成各种静态、交互式和动画图表。Matplotlib 是数据科学、机器学习和科学计算领域中最流行的绘图库之一。 1.1 关键特性 以下是 Matplotlib 的一些关键特性&…...
coverity工具 代码审计
第39篇:Coverity代码审计/代码扫描工具的使用教程_希潭实验室ABC123的博客-CSDN博客...
女鹅冬天的第一件羽绒服,当然要时尚经典的
90白鸭绒,高密度充绒量和蓬松度 让这件羽绒服更加饱满更有型 三防工艺,立领连帽设计 下摆抽绳,帽子上的魔术贴设计 无一不将保暖落实在实处 宽松版型立体感很强,对身材的包容性也是非常不错...
智慧渔业方案:AI渔政视频智能监管平台助力水域禁渔执法
一、方案背景 国内有很多水库及河流设立了禁渔期,加强渔政执法监管对保障国家渔业权益、维护渔业生产秩序、保护渔民群众生命财产安全、推进水域生态文明建设具有重要意义。目前,部分地区的监管手段信息化水平低下,存在人员少、职责多、任务…...
LXC、Docker、 Kubernetes 容器以及Hypervisor的区别
LXC、Docker、 Kubernetes 容器以及Hypervisor的区别 SaaS: Software-as-a-Service(软件即服务) PaaS: Platform-as-a-Service(平台即服务) IaaS: Infrastructure-as-a-Service(基础设施即服务) 1、Docke…...
电子杂志制作不求人:简单易用的工具推荐
如果你想要制作一份精美的电子杂志,但是又不想花费太多的时间和金钱,也不想求及朋友帮忙制作,那么可以试试这个网站制作电子杂志,展现出的效果跟专业级设计师的效果没什么区别哦 赶快收藏吧-------FLBOOK在线制作电子杂志平台&a…...
jsp网站建设模板/长沙网站搭建关键词排名
转载于:https://www.cnblogs.com/Erick-L/p/7163391.html...
网站建设 无锡/天津企业seo
视口单位( Viewport units )初探 起因 最近在写的一个仿网易云的webapp中有一个nav组件。其中nav-item需要宽度自适应屏幕的1/4.其中nav-icon需设置圆形。问题在于:宽度不确定,需要设置高度与宽度相同,且icon-font的font-size需随…...
国内网站建设 必须实名认证/百度热榜实时热点
Mybatis 一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。 2. 二级缓存与一级缓存其机制相同,默认也是采用 Perpetua…...
wordpress速度插件/简短的营销软文范文
ActivityThread中,当Activity对象被创建完毕后,会将DecorView添加到Window中,同时会创建ViewRootImpl对象,并将ViewRootImpl对象和DecorView建立关联。 Activity的UI框架Activity上Window的创建关联流程基础知识view的绘制Activit…...
蓝牙 技术支持 东莞网站建设/外贸网站推广方式
BGA优劣 BGA是BallGridArray的缩写,球栅阵列封装。集成电路芯片上的I/O脚位数量页随着持续提升,各层面要素对IC的封装明确提出高些的规定,另外以便考虑电子设备朝着微型化、精密化发展,BGA封装随着问世并资金投入生产。 一、钢网…...
做网站4000-262-263/如何让网站被百度收录
原创博客,转载请注出处! 关于Wireshark和Nmap实验报告 Wireshark部分 一、捕获三次握手报并分析 如上图所示,简述三次握手流程: Step1.客户端由56780号端口向服务器443号端口发送同步位SYN1,序列号seq0的请求连接报文段…...