day01 - Web APIs

学习目标:

能够通过ID来获取元素 能够通过标签名来获取元素 能够通过class来获取元素 能够通过选择器来获取元素 能够获取body和html元素 能够给元素注册事件 能够修改元素的内容 能够区分innerText和innerHTML的区别 能够修改像div这类普通元素的属性 能够修改表单元素的属性 能够修改元素的样式属性

1.1. Web API介绍

1.1.1 API的概念

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

1550719355829

举例解释什么是API。

例如,

C语言中有一个函数 fopen()可以打开硬盘上的文件,这个函数对于我们来说,就是一个C语言提供的打开文件的工具。

javascript中有一个函数alert()可以在页面弹一个提示框,这个函数就是js提供的一个弹框工具。

这些工具(函数)由编程语言提供,内部的实现已经封装好了,我们只要学会灵活的使用这些工具即可。

1.1.2 Web API的概念

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

现阶段我们主要针对于浏览器讲解常用的 API , 主要针对浏览器做交互效果。比如我们想要浏览器弹出一个警示框, 直接使用 alert(‘弹出’)

MDN 详细 API : https://developer.mozilla.org/zh-CN/docs/Web/API

因为 Web API 很多,所以我们将这个阶段称为 Web APIs。

此处的 Web API 特指浏览器提供的一系列API(很多函数或对象方法),即操作网页的一系列工具。例如:操作html标签、操作页面地址的方法。

1.1.3 API 和 Web API 总结

  1. API 是为我们程序员提供的一个接口,帮助我们实现某种功能,我们会使用就可以了,不必纠结内部如何实现
  2. Web API 主要是针对于浏览器提供的接口,主要针对于浏览器做交互效果。
  3. Web API 一般都有输入和输出(函数的传参和返回值),Web API 很多都是方法(函数)
  4. 学习 Web API 可以结合前面学习内置对象方法的思路学习

1.2. DOM 介绍

1.2.1 什么是DOM

文档对象模型(Document Object Model,简称DOM),是 W3C 组织推荐的处理可扩展标记语言(html或者xhtml)的标准编程接口

W3C 已经定义了一系列的 DOM 接口,通过这些 DOM 接口可以改变网页的内容、结构和样式。

DOM是W3C组织制定的一套处理 html和xml文档的规范,所有的浏览器都遵循了这套标准。

1.2.2. DOM树

1550731974575

DOM树 又称为文档树模型,把文档映射成树形结构,通过节点对象对其处理,处理的结果可以加入到当前的页面。

1550732362134

1.3. 获取元素

为什么要获取页面元素?

例如:我们想要操作页面上的某部分(显示/隐藏,动画),需要先获取到该部分对应的元素,再对其进行操作。

1.3.1. 根据ID获取

案例代码

1.3.2. 根据标签名获取元素

案例代码

1550733441663

注意:getElementsByTagName()获取到是动态集合,即:当页面增加了标签,这个集合中也就增加了元素。

1.3.3. H5新增获取元素方式

1550733518278

1550733734425

案例代码

1.3.4 获取特殊元素(body,html)

1550733794816

1.4. 事件基础

1.4.1. 事件概述

JavaScript 使我们有能力创建动态页面,而事件是可以被 JavaScript 侦测到的行为。

简单理解: 触发--- 响应机制

网页中的每个元素都可以产生某些可以触发 JavaScript 的事件,例如,我们可以在用户点击某按钮时产生一个 事件,然后去执行某些操作。

1.4.2. 事件三要素

案例代码

1.4.3. 执行事件的步骤

1550734387056

案例代码

1.4.4. 常见的鼠标事件

1550734506084

1.4.5. 分析事件三要素

1.5. 操作元素

JavaScript的 DOM 操作可以改变网页内容、结构和样式,我们可以利用 DOM 操作元素来改变元素里面的内容、属性等。(注意:这些操作都是通过元素对象的属性实现的)

1.5.1. 改变元素内容(获取或设置)

1550735016756

innerText改变元素内容

innerText和innerHTML的区别

innerText会去除空格和换行,而innerHTML会保留空格和换行

innerText不会识别html,而innerHTML会识别

案例代码

1.5.2. 常用元素的属性操作

1550735556297

获取属性的值

元素对象.属性名

设置属性的值

元素对象.属性名 = 值

案例代码

 

1.5.3. 案例:分时问候

1550735858049

1550735877145

1.5.4. 表单元素的属性操作

1550736039005

获取属性的值

元素对象.属性名

设置属性的值

元素对象.属性名 = 值

表单元素中有一些属性如:disabled、checked、selected,元素对象的这些属性的值是布尔型。

案例代码

1.5.5. 案例:仿京东显示密码

1550736330331

1550736346822

1.5.6. 样式属性操作

我们可以通过 JS 修改元素的大小、颜色、位置等样式。

常用方式

1550736488634

 

方式1:通过操作style属性

元素对象的style属性也是一个对象!

元素对象.style.样式属性 = 值;

1550736620181

案例代码

案例:淘宝点击关闭二维码

1550736843659

1550736881832

案例:循环精灵图背景

1550736940082

1550736956754

案例:显示隐藏文本框内容

1550737006593

1550737019729

方式2:通过操作className属性

元素对象.className = 值;

因为class是关键字,所有使用className。

1550737214510

案例代码

案例:密码框格式提示错误信息

1550737269546

1550737284218

1.6. 今日总结

1550737354861