Web APIs 学习归纳1---Web API概述简单的元素获取

news2025/1/15 23:45:02

       JS基础中我们学习了JS的基本语句,这些是后续学习中的基础。

        有了上述JS的基础以后,我们就可以开始学习交互效果的实现方法。这里很多时候直接调用JS封装好的API即可。

一、Web APIs 和 JS 基础关联性

        这里有一张图很好的解释了这个问题:

         我们前期学习的是JS的基础语法,现在学习的是基于JS语法的API的使用。

二、API 和 Web API

2.1 API

        API这个词大家可能在学习的过程中也听过,但是可能不是很清除,这里对API加以解释。

        API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序 与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

2.2 Web API

        Web API 是浏览器提供的一套操作浏览器功能和页面元素的 API ( BOM 和 DOM )。

        可以参考      https://developer.mozilla.org/zh-CN/docs/Web/API

三、DOM

3.1 什么是DOM

        文档对象模型(Document Object Model,简称 DOM),是 W3C 组织推荐的处理可扩展标记语言(HTML 或者XML)的标准编程接口。 W3C 已经定义了一系列的 DOM 接口,通过这些 DOM 接口可以改变网页的内容、结构和样式

3.2 DOM

       我们自上而下分析这个图:

        文档:一个页面就是一个文档(整个 .html 文件),DOM 中使用 document 表示

        元素:页面中的所有标签都是元素,DOM 中使用 element 表示。后续我们需要学会获取。

        节点:网页中的所有内容都是节点(标签、属性、文本、注释等),DOM 中使用 node 表示

        DOM 把以上内容都看做是对象

3.3 获取元素---根据 ID 获取(返回一个对象)

        使用 getElementById() 方法可以获取带有 ID 的元素对象。

document.getElementById('id');

        举例,选取有id的标签对象:

<body>
    <div id="time">2024-4-23</div>
    <script>
        var Timer = document.getElementById('time');
        console.log(Timer); //选出id的标签

    </script>
</body>

3.4 获取元素---根据标签名获取(返回带有指定标签名的对象的集合)

        使用 getElementsByTagName() 方法可以返回带有指定标签名的对象的集合。

document.getElementsByTagName('标签名');

        这里同样使用一个例子,抓取所有  <li>  标签。 

<body>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>

    </ul>
    <ol id="ol">
        <li>11</li>
        <li>22</li>
        <li>33</li>
        <li>44</li>

    </ol>

    <script>
        // 1.返回的是 获取过来元素对象的集合 以伪数组的形式存储的
        var lis = document.getElementsByTagName('li');
        //返回一个数组
        for (let i = 0; i < lis.length; i++) {
            console.log(lis[i]);
        }

        //2.选择id=ol下的li
        var ols = document.getElementById('ol'); // 获取 父元素对象
        console.log(ols.getElementsByTagName('li'));
    </script>
</body>

        我们注意到:

        1、document.getElementsByTagName('li');

        这里得到的是文档下所有的 <li> 标签

        //这里得到的是文档下所有的 <li> 标签 
        var lis = document.getElementsByTagName('li');

        2、因为是数组所以使用 lis[i] 调用

        3、ols.getElementsByTagName('li')

        这里得到的是ols对象内部的所有<li>

3.5 获取元素---通过 HTML5 新增的方法获取

        1、document.getElementsByClassName(‘类名’);// 根据类名返回元素对象集合

        注意:对比之前的ID获取,id好比身份证号所以只返回一个。但是类名获取可以获取很多,得到的就是集合。

        2、document.querySelector('选择器'); // 根据指定选择器返回第一个元素对象

        注意:1、类型  :  .classanme   2、id :    #idname

        3、document.querySelectorAll('选择器'); // 根据指定选择器返回

        注意:对比document.querySelector,这里获取的是集合

document.getElementsByClassName(‘类名’);// 根据类名返回元素对象集合
document.querySelector('选择器'); // 根据指定选择器返回第一个元素对象
document.querySelectorAll('选择器'); // 根据指定选择器返回

3.6 获取元素---特殊元素的获取

        刚才讲的都是我们经常使用的标签,但是<html><body> 我们一般不去人为修改,但是我们还是要学习一下获取方式:

        1、获取body元素

doucumnet.body // 返回body元素对象;

        怎么理解:1、document是body的父亲。2、body只有一个所以不用类名获取,直接封装一个body。

        2、获取html元素

        专属的一个记住就好。

document.documentElement // 返回html元素对象

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

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

相关文章

离线模式下载安装gcc-4.8.5

目录 一&#xff0c;下载gcc离线安装包 二&#xff0c;下载gcc依赖包 三&#xff0c;安装gcc 1, 解压 2, 将依赖库放置环境 3, 安装 3.1自动安装 3.1.1 执行依赖库的编译 3.1.2 新建编译目录 3.1.3 配置编译环境 3.1.4 编译 3.1.5 安装 3.2 手动安装 3.2.…

扫码怎样上传现场照片或视频?快速提交现场记录的方法

现在很多应用场景会使用二维码来登记信息&#xff0c;通过手机扫描二维码即可根据问题填写对应的数据&#xff0c;比如在活动签到、预约报名、巡视检查、用户调研等场景现在都会采用这种方式来登记信息。有些时候需要扫码者在填写数据时上传现场相关照片或者视频来作为证明&…

Unity Meta Quest MR 开发(七):使用 Stencil Test 模板测试制作可以在虚拟与现实之间穿梭的 MR 传送门

文章目录 &#x1f4d5;教程说明&#x1f4d5;Stencil Test 模板测试&#x1f4d5;Stencil Shader&#x1f4d5;使用 Unity URP 渲染管线设置模板测试⭐Render Pipeline Asset 与 Universal Renderer Data⭐删除场景中的天空盒⭐设置虚拟世界的层级 Layer⭐设置模板测试 &#…

FreeRTOS:3.消息队列

FreeRTOS消息队列 本文主要基于消息队列的源码进行分析&#xff0c;来对FreeRTOS的消息队列进一步学习。 消息队列非常重要&#xff0c;因为后面的各种信号量基本都是基于队列的&#xff0c;搞清楚消息队列的源码&#xff0c;也就搞清楚消息队列的原理。 参考链接&#xff1…

Linux命令行基本操作

目录 (1)实验目的&#xff1a; (2)实验内容&#xff1a; (3)实验原理&#xff1a; (4) 实验步骤: 1.分别创建两个文件并任意输入不同的英文内容&#xff08;文件名用自己的姓名拼音与编号命名&#xff0c;如zhangsan01、zhangsan02&#xff09;。 2.将上题两个文件合并&a…

【Hadoop】-HDFS的Shell操作[3]

目录 前言 一、HDFS集群启停命令 1.一键启停脚本可用 2.独立进程启停可用 二、文件系统操作命令 1、创建文件夹 2、查看指定目录下内容 3、上传文件到HDFS指定目录下 4、查看HDFS文件内容 5、下载HDFS文件 6、拷贝HDFS文件 7、追加数据到HDFS文件中 8、HDFS数据移…

统一SQL 支持Oracle decode函数到TDSQL-MySQL的转换

统一SQL介绍 https://www.light-pg.com/docs/LTSQL/current/index.html 源和目标 源数据库&#xff1a;Oracle 目标数据库&#xff1a;TDSQL-MySQL 操作目标 在Oracle中&#xff0c;decode函数语法如下图&#xff1a;该函数功能是将 expr与每个 search 依次做比较&#x…

【学习】应急响应

知识体系 事件前 事件后 导致安全事件的原因 part2 事件的分级分类 part3 应急响应工作流程

springboot_java_Ssm高校网上教材征订系统

SpinrgBoot的主要优点有&#xff1a; 1、为所有spring开发提供了一个更快、更广泛的入门体验&#xff1b; 2、零配置&#xff1b; 3、集成了大量常用的第三方库的配置&#xff1b; 4、提供准备好的特性。当今&#xff0c;java领域的开发者机会都在使用SpinrgBoot,在开发领域逐渐…

SSRF—服务器请求伪造 漏洞详解

漏洞简述 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造&#xff0c;由服务端发起请求的一个网络攻击&#xff0c;一般用来在外网探测或攻击内网服务&#xff0c;其影响效果根据服务器用的函数不同&#xff0c;从而造成不同的影响。 SSRF 形成的原因…

临时邮箱API有哪些功能特性?如何选择API?

临时邮箱API的安全性如何保障&#xff1f;电子邮箱API操作指南&#xff1f; 对于很多用户而言&#xff0c;临时邮箱API不仅仅是一个简单的工具&#xff0c;更是一个保护隐私、避免垃圾邮件侵扰的得力助手。那么&#xff0c;临时邮箱API究竟具备哪些功能特性呢&#xff1f;接下…

LeetCode-219. 存在重复元素 II

题目描述 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&…

深度学习实践指南:打造强大AI应用的关键步骤和技巧

深度学习发展总图 深度学习发展总图 深度学习(deep learning)发展史 - 知乎 不同的神经元模型 麦卡洛克 - 皮茨神经元模型&#xff08;McCulloch - Pitts Neuron Model&#xff09; 麦卡洛克 - 皮茨神经元模型&#xff08;McCulloch - Pitts Neuron Model&#xff09;是模仿…

《深入解析windows操作系统》第1章读书笔记

1、服务&#xff1a;指操作系统中可以被调用的例程&#xff08;即函数&#xff0c;等价于系统调用&#xff1f;&#xff09;、设备驱动程序或者服务器进程。一些特定术语如下&#xff1a; 1&#xff09;Windows API函数&#xff1a;指Windows API中已经被文档化、可被调用的子例…

基层设备人如何开展TPM:从理念到实践的深度心得

在制造业的基层工作中&#xff0c;设备维护与管理如同稳固的基石&#xff0c;为生产流程的顺畅运作提供了坚实的保障。TPM&#xff0c;这一全面生产维护的理念&#xff0c;已在众多企业中落地生根&#xff0c;成为提升设备效能和企业竞争力的有力工具。那么&#xff0c;作为基层…

学习操作系统路线

操作系统 简介 本课程为计算机专业学生量身定制&#xff0c;补足计算机操作系统相关知识&#xff0c;查漏补缺&#xff0c;也可用于考研复习。内容包括&#xff1a;操作统概述、进程管理、内存管理、文件管理、输入/输出管理等章节。内容力求精炼、重点突出、条理清晰、深入浅…

【ruoyi-vue】axios的封装理解和基本使用

axios的配置 ruoyi的前端对axios进行了封装&#xff0c;让我们发get请求或者是post请求更加方便了。 ruoyi对axios的封装在下面文件中&#xff1a;打开文件&#xff0c;可以看到它有三个显眼的方法&#xff0c;分别是request拦截器、response拦截器和通用下载方法。ruoYi接口地…

LeetCode 315—— 计算右侧小于当前元素的个数

阅读目录 1. 题目2. 解题思路一3. 代码实现一4. 解题思路二5. 代码实现二 1. 题目 2. 解题思路一 参考 剑指 Offer——数组中的逆序对&#xff0c;我们依然借助于归并排序中的合并操作来计算某个元素右侧小于它的元素个数。 如上图最左边所示&#xff0c;第五行开始进行第一次…

Multitouch 1.27.28 免激活版 mac电脑多点触控手势增强工具

Multitouch 应用程序可让您将自定义操作绑定到特定的魔术触控板或鼠标手势。例如&#xff0c;三指单击可以执行粘贴。通过执行键盘快捷键、控制浏览器的选项卡、单击鼠标中键等来改进您的工作流程。 Multitouch 1.27.28 免激活版下载 强大的手势引擎 精心打造的触控板和 Magic …

js 模拟鼠标移动事件,并监听鼠标移动

代码实现 function simulateClick( x, y) {// 获取目标元素 const element document.querySelector("xxxxx"); // 创建一个鼠标移动事件 var mouseMoveEvent new MouseEvent(mousemove, {screenX: x window.screenX, screenY: y window.screenY, clientX: x,…