【第五部分 | JS WebAPI】1:WebAPIs概述、网页元素的获取、事件

news2024/11/17 3:51:01

目录

| 概述

| 文档、元素、节点的概念

| 获取元素

根据ID获取

根据标签名获取

通过HTML5新增方法获取

特殊元素获取(body html)

 

| 事件基础

事件三要素

点击事件

光标获得/失去焦点事件

[ 更多其它事件 ]

刷新网页自动执行某些事件


| 概述

学习完JS后,我们就需要学习有关JS的 WebAPIs 啦!就像学习完 Java后,就要开始学习 Servlet、JDBC、SSM、SpringBoot 一样自然……

WebAPIs就是通过 JS 来获取网页中的元素(如标签等),进而对这些元素添加一些诸如【事件、操作、更新、动效】等交互效果。

这么说:
对于后端而言,Java是根基,Servlet是后端基础,框架是后端的实际应用;对于前端而言,HTML、CSS是搭建和美化静态网页,JS是根基,Vue等框架是让网页活起来的实际应用。

本章的阶段和重要性

  • 第一章学习的是JS基本语法,但是只学习基本语法是远远不够的,我们还需要学习网页元素的相关操作,对网页的相关指令做出相应。

  • JS由:ECMAScript、DOM、BOM组成。本章学习的是DOM

  • DOM的作用是:实现页面交互功能

  • 学习本章,所需要的前置知识:Html、CSS、JavaScript基础语法知识

什么是DOM

DOM是一个JS的web API(Application Programming Interface)

 

目标

 


| 文档、元素、节点的概念

 

| 获取元素

根据ID获取

  • 需要注意的是,我们的script标签必须写在元素被创建的语句之后。【今后会学如何把script提升到head里】

  • id需要带单引号,表示一个字符串

  • 返回的是一个元素对象

通过ID获取元素的语法:

document.getElementById('id');

 使用 console.dir() 可以打印我们获取的元素对象,更好地查看对象里面的属性和方法。


根据标签名获取

  • 返回的是获取的元素对象(不是字符串)的集合。伪数组。(有索引、有length);无论页面是只有一个li,还是没有任何元素,所得到的都是一个伪数组。

  • 因为得到的是一个对象的集合,所以我们想要操作里面的元素就需要遍历

  • 得到元素对象是动态的

通过标签名获取元素的语法:

 document.getElementsByTagName('标签名');

 

如何获取“ol下的li”? 可以把document换成元素

需要注意的是:所得到的ol是一个伪数组,我们需要使用ol[0]来得到一个单独的元素,而不是把整个伪数组作为document

var ol = document.getElementsByTagName('ol');
ol[0].getElementsByTagName('li');

 

通过HTML5新增方法获取

示例

特殊元素获取(body html)

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

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

 

| 事件基础

事件三要素

事件源 → 事件类型 → 事件处理程序

点击事件

点击按钮,弹出弹窗(获取元素对象btn → 事件类型onclick → 事件处理程序function(){ //... })

var btn = document.getElementById('btn');
btn.onclick = function() {
 alert('你好吗'); 
};

代码示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <button id="btn">Click me</button>
    <script>
        //获取事件源:元素对象
        var btn = document.getElementById('btn');
        //绑定事件
        btn.onclick = function(){
            //事件处理程序
            alert('おはようございます!');
        }
    </script>
</body>
</html>

光标获得/失去焦点事件

事件 : 获得焦点 onfocus 失去焦点 onblur

应用案例:鼠标光标放置在文本框的时候,默认文字消失(和 placeholder 的区别:placeholder需要输入文字才小时)

 

[ 更多其它事件 ]

刷新网页自动执行某些事件

我们可以不添加触发事件,这样的话,就相当于默认触发事件。即:网页刷新的时候,JS会自动执行

 

 

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

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

相关文章

Alibaba内部首发“面试百宝书+超全算法面试手册”PDF版下载

面试你打算要多高的薪资&#xff1f; 第一份工作的薪资水平就是你的薪资起点&#xff0c;如果你拿到的第一份薪水远高于其他人&#xff0c;那么你在未来涨薪路上就会省很多力。 想刚开始工作就拥有高薪&#xff0c;那就需要抬高自己的“身价”&#xff0c;提升自己的工作能力…

[附源码]java毕业设计-线上摄影平台系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Blob和ArrayBuffer和File

Blob Blob对象表示一个不可变、原始数据的类似文件的对象。Blob 表示的不一定是JavaScript原生格式的数据。 Represents a “Binary Large Object”, meaning a file-like object of immutable, raw data。 type BufferSource ArrayBufferView | ArrayBuffer; type BlobPart…

微前端——single-spa源码学习

前言 本来是想直接去学习下qiankun的源码&#xff0c;但是qiankun是基于single-spa做的二次封装&#xff0c;通过解决了single-spa的一些弊端和不足来帮助大家能更简单、无痛的构建一个生产可用微前端架构系统。 所以我们应该先对single-spa有一个全面的认识和了解&#xff0c…

看了就能懂的NIO使用深入详解

NIO概述 NIO介绍 传统IO流(java.io):读写操作结束前,处于线性阻塞,代码简单,安全,性能低 NIO&#xff1a;支持非阻塞式编程,性能更有优势,但代码编写较为复杂。 概念理解 同步(synchronous):一条线程执行期间,其他线程就只能等待。 异步(asynchronous):一条线程在执行…

Java基础深化和提高-------多线程与并发编程

目录 多线程与并发编程 多线程介绍 什么是程序&#xff1f; 什么是进程? 什么是线程&#xff1f; 进程、线程的区别 什么是并发 线程和方法的执行特点 方法的执行特点 线程的执行特点 什么是主线程以及子线程 主线程 子线程 线程的创建 通过继承Thread类实现多线程 通过Ru…

暴力美学,拒绝平庸,Alibab开源内部神仙级“K8S核心笔记”下载

各大互联网巨头在技术战略层面&#xff0c;都把云原生列为了主要发展方向。以阿里巴巴为例&#xff0c;他们技术老大说&#xff0c;云原生是云计算释放红利的最短路径&#xff0c;也是企业数字化的最短路径。 现在云原生工程师、Kubernetes 工程师工资都特别高&#xff0c;并且…

大厂光环下的功能测试,出去面试自动化一问三不知

在一家公司待久了技术能力反而变弱了&#xff0c;原来的许多知识都会慢慢遗忘&#xff0c;这种情况并不少见。 一个京东员工发帖吐槽&#xff1a;感觉在大厂快待废了&#xff0c;出去面试问自己接口环境搭建、pytest测试框架&#xff0c;自己做点工太久都忘记了。平时用的时候…

【BLE】蓝牙数据速率

【BLE】蓝牙数据速率 理论速度 物理层 未编码PHY&#xff0c;每位数据使用1个符号表示 1Mbps&#xff08;LE 1M PHY&#xff09; 2Mbps&#xff08;LE 2M PHY&#xff09; 编码PHY 500Kbps&#xff08;S2&#xff09; 125Kbps&#xff08;S8&#xff09; 1Mbps指的是每…

MATLAB改变默认工作路径

软件版本&#xff1a;MATLAB2022a 电脑系统&#xff1a;win10 问题&#xff1a; 每次打开matlab都会自动打开matlab.exe文件夹位置&#xff0c;而不是打开自己新建的工作空间每次都要转换&#xff0c;很麻烦 方法&#xff1a; 1、找到安装目录下的matlabrc.m文件&#xff0…

大事务问题到底要如何解决?

文章目录大事务引发的问题pom依赖解决方法1. 少用Transactional 注解2. 将查询(select)方法放到事务外3. 事务中避免远程调用4. 事务中避免一次性处理太多数据5. 非事务执行6. 异步处理大事务引发的问题 在 分 享 解 决 办 法 之 前 &#xff0c;先 看 看 系 统 中 如 果 出 现…

一款集成ST-link下载及虚拟串口的STM32F103C8T6最小系统板设计

前言 在以前的STM32单片机应用中&#xff0c;经常使用STM32F103C8T6最小系统板&#xff08;小蓝板&#xff09;作为主控。程序下载和串口交互都需要额外器件和接线&#xff0c;程序下载的话要用到ST-link&#xff0c;串口交互用到USB-TTL&#xff0c;常见的样子就下面这…

(历史上最详细的网络)华为初级网络工程师知识点总结(二)工作考研均受益

超级详细网络知识二一&#xff0c;关于IPV4和IPV6地址的介绍&#xff08;重点是IPV4&#xff09;1,IPV4地址的组成2&#xff0c;子网掩码的详解3&#xff0c;IP地址的分类和播的形式4&#xff0c;IP地址的分类可用地址5&#xff0c;IPV4的特殊地址&#xff0c;公网地址&#xf…

信息数据采集软件-什么工具可以快速收集信息

随着时代的不断的进步&#xff0c;我们已经悄然无息地步入了一个大数据信息时代&#xff0c;每个人在互联网上都离不开信息数据的汇总分析以及信息数据的应用&#xff0c;不管是亮化自己的信息数据&#xff0c;还是分析同行详细信息的数据。今天小编就教大家如何用信息抓取软件…

yapi文档转换jmx脚本

需求 需要自动生成接口测试脚本接口文档&#xff08;swagger/yapi/wiki&#xff09;很多&#xff0c;我不想一个一个去复制黏贴到jmeter 期望 一键自动生成接口测试脚本&#xff0c;解放双手&#xff0c;降低纯手力劳动占比&#xff0c;进而给自己提供更多的时间去思考、理解…

第九章:单调栈与单调队列

单调栈与单调队列一、单调栈1、什么是单调栈&#xff1f;2、单调栈的模板&#xff08;1&#xff09;问题&#xff1a;&#xff08;2&#xff09;分析&#xff1a;二、单调队列1、什么是单调队列2、单调队列模板&#xff08;1&#xff09;问题&#xff08;2&#xff09;分析一、…

深入浅出学习透析Nginx服务器的基本原理和配置指南「Https安全控制篇」

Https反向代理 之前的内容中我们主要针对于一些对安全性要求比较高的站点&#xff0c;可能会使用HTTPS&#xff08;一种使用SSL通信标准的安全HTTP协议&#xff09;&#xff0c;针对于HTTP 协议和SSL标准相信大家都知道了&#xff0c;在这里我就不为大家进行介绍了&#xff0c…

共建“医疗合规科技实验室”,美创科技实力护航医疗数据安全

11月15日-17日&#xff0c;由工业和信息化部、深圳市人民政府主办&#xff0c;中国互联网协会、广东省通信管理局、深圳市工业和信息化局等单位承办的2022中国互联网大会隆重召开。 在互联网医疗健康合规发展论坛上&#xff0c;医疗合规科技实验室合作伙伴计划正式启动&#xf…

scau Java综合性实验之Java源程序分析程序

1. 编写一个Java应用程序&#xff0c;实现对某个目录中的所有Java源程序文件&#xff08;包含该目录的子目录中的源程序文件&#xff09;进行统计。统计内容包括&#xff1a; (1) 目录中每个源程序文件的总行数和空白行数&#xff0c;文件的字节数&#xff1b; (2) 目录中所有源…

ADB调试--详细教程(附华为手机无法显示设备解决方法)

终端打开开发者模式&#xff0c;用数据线连接电脑&#xff0c;然后按照下面的步骤操作 1、开启开发者选项&#xff1a; 设置->关于设备->版本号&#xff08;连续点击5次&#xff09; 2、打开USB调试 在开发者选项中&#xff0c;找到USB调试&#xff0c;将此打开。 3、…