【前端】JS - WebAPI

news2025/1/22 18:58:47

目 录

  • 一.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 获取到, 从而进行更复杂的交互操作

浏览器就是一个哨兵, 在侦查敌情(用户行为). 一旦用户有反应(触发具体动作), 哨兵就会点燃烽火台的狼烟(事件), 后方就可以根据狼烟来决定下一步的对敌策略.


事件三要素

  1. 事件源: 哪个元素触发的
  2. 事件类型: 是点击, 选中, 还是修改?
  3. 事件处理程序: 事件出现之后要执行哪个代码

在这里插入图片描述

例如上述代码: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类名.

日间模式 夜间模式 相互切换:

在这里插入图片描述

点击前 (日间模式):

在这里插入图片描述

点击后 (夜间模式):

在这里插入图片描述


六.操作节点

操作节点,这个是针对页面上的元素进行增删

新增节点

  1. 创建元素节点

使用 createElement 方法来创建一个元素

  1. 插入节点到 dom 树中

先确定要把新元素放到哪个父节点下,根据父节点,使用 appendChild 方法。

在这里插入图片描述

在这里插入图片描述

另外还有一个 insertBefore 也能实现插入~~插入到某个子元素的前面.

  1. 删除节点

先确定要删除元素的父节点,然后再确定要删除的节点

在这里插入图片描述

删除前:

在这里插入图片描述

删除后:

在这里插入图片描述


七.代码案例

  1. 猜数字

先生成一个 1-100 的随机正数,让用户输入一个要猜的数字,程序来提示,是猜的高了,低了,对了。

  • 首先要先能够生成一个随机数字
  • 然后需要在页面上有一个输入框
  • 接下来还需要有一个 ‘提交按钮’
  • 最后还得有区域来显示结果

由于 JS 的 Math.random()生成的随机数,是一个[0,1)之间的小数,那么我么需要将 N*100+1 即可得到区域为 [1,101),再向下取整即可得到 [0,100]的区域。

在这里插入图片描述

  1. 表白墙

在这里插入图片描述

在这里插入图片描述

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

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

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

相关文章

为什么全链路压测如此重要?

在今天的数字化世界中,软件系统的稳健性和性能至关重要。用户对于应用程序的高可用性和快速响应时间有着越来越高的期望,因此,全链路压测变得至关重要。本文将深入探讨什么是全链路压测,为什么它如此重要以及如何进行全链路压测。…

【ESP32】C语言映射表在嵌入式串口解析中的应用

本文章主要以ESP32开发环境为例记录,C语言映射表在嵌入式串口解析中的应用 【ESP32】C语言映射表在嵌入式串口解析中的应用 一、C语言映射表在串口数据解析中的应用1、数据结构2、指令、函数映射表3、串口解析函数实现 二、实验现象三、实验代码 一、C语言映射表在串…

Python超入门(4)__迅速上手操作掌握Python

# 15.while循环 rows 0 while rows < 5:print(* * rows)rows 1* ** *** ****# 16.使用while循环制作猜灯谜游戏secret_num 12 guess_count 0 guess_limit 100while guess_count < guess_limit:guess_count int(input("猜测:"))if guess_count secret_n…

turn搭建测试

安装 安装环境 cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core)相关系统环境安装 sudo yum install -y make gcc cc gcc-c wgetsudo yum install -y openssl-devel libevent libevent-devel安装libEvent组件 # 如果链接不可用直接去官网找对应release包下载…

面试算法27:回文链表

问题 如何判断一个链表是不是回文&#xff1f;要求解法的时间复杂度是O&#xff08;n&#xff09;&#xff0c;并且不得使用超过O&#xff08;1&#xff09;的辅助空间。如果一个链表是回文&#xff0c;那么链表的节点序列从前往后看和从后往前看是相同的。 分析 如果不考虑…

使用两个goroutine交替、顺序打印一段字符串的字符

1、使用两个goroutine交替、顺序打印一段字符串的字符 输入&#xff1a;hello world 输出&#xff1a;hello world 关键点&#xff1a;控制goroutine的执行先后循序 golang语言版本&#xff1a; package mainimport ("fmt""sync" )func main() {conte…

数据结构——线性表作业

目录 选择题和填空题 编程题 1. 输出单链表倒数第K个结点值 单链表 双指针 2. 数组元素移动 3. 多项式相加 4. 数组的循环左移 选择题和填空题 编程题 1. 输出单链表倒数第K个结点值 【问题描述】 输入一个单向链表&#xff0c;输出该链表中倒数第k个结点&#xff0…

外贸知识:谈好订单的客户临时却要求价格优惠怎么办?

距离订单成交只差一步的时候&#xff0c;客户却要求价格一降再降&#xff0c;是为什么&#xff1f; 真的只是为了降价吗&#xff1f; Carl是一个苦苦挣扎的业务员&#xff0c;每次在挖掘客户需求的过程中&#xff0c;客户都是一副“对对对&#xff0c;是是是&#xff0c;好好好…

那些年,我们追过的Java BUG

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

基于springboot实现银行OA系统的设计与实现平台项目【项目源码+论文说明】计算机毕业设计

摘要 在互联网信息技术时代中&#xff0c;企业管理更多的是使用管理系统进行智能化控制&#xff0c;提高单位的核心竞争力&#xff0c;适应快节奏的生产活动。银行OA系统是为企业提供的一整套便于企业管理的应用软件&#xff0c;是目前企业管理的必备系统。通过走访了解&#…

几个非常实用的 Chrome Devtools 技巧

原文链接&#xff1a;[几个非常实用的 Chrome Devtools 技巧](https://fe32.top/articles/skill001/ 关于 Chrome 浏览器&#xff0c;如果你是一名前端开发者&#xff0c;相信对此并不陌生&#xff0c;我们可以用它来查看 网络请求、分析网页性能、调试 JavaScript 功能 等。 …

山海鲸报表系统:数据洞察的利器

在信息时代&#xff0c;数据是每个组织的核心资产。然而&#xff0c;拥有大量数据并不足够&#xff0c;我们需要将这些数据转化为有用的信息&#xff0c;以指导决策和行动。这就是山海鲸报表系统的使命。 解析数据的力量 山海鲸报表系统是一款强大的工具&#xff0c;旨在帮助企…

代码随想录打卡第四十二天| ● 62.不同路径 ● 63. 不同路径 II

62 不同路径 **题目&#xff1a;**一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条…

收银系统哪个好 2023年十大收银软件品牌排行榜

根据2023年的最新数据和市场调研&#xff0c;以下是收银系统十大排名&#xff08;2023年十大收银软件品牌排行榜&#xff09;&#xff1a; 商人宝 一款集成了收银系统、会员管理、进销存和数据分析等多个功能的服装店收银软件&#xff0c;适用于服装卖场、中小型连锁超市、便利…

RunnerGo UI自动化使用体验

RunnerGo怎么做UI自动化 首先需要进入官网&#xff0c;RunnerGo支持开源&#xff0c;可以自行下载安装&#xff0c;也可以点击右上角体验企业版按钮快速体验 点击体验企业版进入工作台后可以点击页面上方的UI自动化 进入到测试页面 创建元素 我们可以在元素管理中创建我们测试…

企业文件防泄密软件!好用的文件加密系统推荐

由于众多企业内部都有大量的机密数据以电子文档的形式存储着&#xff0c;且传播手段多样&#xff0c;很容易造成文件泄密的问题发生。若是员工通过网络泄密重要文件&#xff0c;或是有黑客入侵窃取机密数据等&#xff0c;造成重要文件被非法查看盗取&#xff0c;都会给企业业务…

ROS 物体跟踪示例

物体跟踪与物体识别有相似之处&#xff0c;同样使用特征点检测的方法&#xff0c;但侧重点并不相同。物体识别针对的物体可以是静态的或动态的&#xff0c;根据物体特征点建立的模型作为识别的数据依据&#xff1b;物体跟踪更强调对物体位置的准确定位&#xff0c;输入图像一般…

2.2 如何使用FlinkSQL读取写入到文件系统(HDFS\Local\Hive)

目录 1、文件系统 SQL 连接器 2、如何指定文件系统类型 3、如何指定文件格式 4、读取文件系统 4.1 开启 目录监控 4.2 可用的 Metadata 5、写出文件系统 5.1 创建分区表 5.2 滚动策略、文件合并、分区提交 5.3 指定 Sink Parallelism 6、示例_通过FlinkSQL读取kafk…

力扣:133. 克隆图(Python3)

题目&#xff1a; 给你无向连通图中一个节点的引用&#xff0c;请你返回该图的深拷贝&#xff08;克隆&#xff09;。 图中的每个节点都包含它的值 val&#xff08;int&#xff09; 和其邻居的列表&#xff08;list[Node]&#xff09;。 class Node {public int val;public Lis…

Excel提高工作效率常用功能

定位快捷键使用 CtrlG或者F5 根据不同类别插入空行 例&#xff1a;以下表&#xff0c;以部门为单位&#xff0c;每个部门后插入空白行 部门姓名出勤基本工资岗位津贴公体加班绩效基数工龄应发合计财务部姓名73115002101710财务部姓名11116006003401502363财务部姓名5271000…