1.0 Web APIs 和 JS 基础关联性
1.1 JS的组成
JavaScript 由 ECMAScript(JavaScript基础) 、DOM和BOM组成。(DOM和BOM也就是web API)。
1.2 JS 基础阶段以及 Web APIs 阶段
JS 基础阶段
- 我们学习的是 ECMAScript 标准规定的基本语法
- 要求同学们掌握 JS 基础语法
- 只学习基本语法,做不了常用的网页交互效果
- 目的是为了 JS 后面的课程打基础、做铺垫
Web APIs 阶段
- Web APIs 是 W3C 组织的标准
- Web APIs 我们主要学习 DOM 和 BOM
- Web APIs 是我们 JS 所独有的部分
- 我们主要学习页面交互功能
- 需要使用 JS 基础的课程内容做基础
**总结:**JS 基础学习 ECMAScript 基础语法为后面作铺垫, Web APIs 是 JS 的应用,大量使用 JS 基础语法做交互效果。
2.0 API 和 Web API
2.1 API
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
简单理解: API 是给程序员提供的一种工具,以便能更轻松的实现想要完成的功能
2.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
2.3 API 和 Web API 总结
- API 是为我们程序员提供的一个接口,帮助我们实现某种功能,我们会使用就可以了,不必纠结内部如何实现
- Web API 主要是针对于浏览器提供的接口,主要针对于浏览器做交互效果。
- Web API 一般都有输入和输出(函数的传参和返回值),Web API 很多都是方法(函数)
- 学习 Web API 可以结合前面学习内置对象方法的思路学习
1.0 DOM 简介
文档对象模型(Document Object Model,简称 DOM),是 W3C 组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口。
W3C 已经定义了一系列的 DOM 接口,通过这些 DOM 接口可以改变网页的内容、结构和样式。
1.1 DOM 树
- 文档:一个页面就是一个文档,DOM 中使用 document 表示
- 元素:页面中的所有标签都是元素,DOM 中使用 element 表示
- 节点:网页中的所有内容都是节点(标签、属性、文本、注释等),DOM 中使用 node 表示
DOM 把以上内容都看做是对象
2. 获取元素
获取页面中的元素可以使用以下几种方式:
- 根据 ID 获取
- 根据标签名获取
- 通过 HTML5 新增的方法获取
- 特殊元素获取
2.1 通过ID获取
- document.getElementById(‘id’); (获取带有 ID 的元素对象)
- console.dir() 打印我们返回的元素对象(查看里面的属性和方法)
- typeof element 查看元素类型
<div id="time">2021-9-9</div>
1. 我们文档的页面是从上往下加载的,所以先得有 div 这个标签, 所以script写在 div 下面
2. get 获得 element 元素 by 通过 驼峰命名法
3. 参数 id 是大小写敏感的字符串
4. 返回的是一个元素
var timer = document.getElementById('time');
console.log(timer);
console.log(typeof timer);
// 5. console.dir 打印我们返回的元素对象, 可以更好的查看里面的属性和方法
console.dir(timer);
2.2 根据标签名获取
- document.getElementsByTagName(‘标签名’); 返回带有指定标签名的对象的集合。(div,p,span等)(还可以获取某个元素(父元素)内部所有指定标签名的子元素.)
注意:
- 因为得到的是一个对象的集合,所以我们想要操作里面的元素就需要遍历。
- 得到元素对象是动态的
- 如果获取不到元素,则返回为空的伪数组(因为获取不到对象)
- 父元素必须是单个对象(必须指明是哪一个元素对象). 获取的时候不包括父元素自己。
1. 返回的是 获取过来的元素对象的集合 以伪数组的形式储存的。
var lis = document.getElementsByTagName('li');
console.log(lis); // 获取了 lis 这个伪数组
console.log(lis[0]); // 获取了 lis 伪数组中的第一个 li
2. 通过循环遍历这个伪数组,可以遗传打印里面的元素
for (var i = 0; i < lis.length; i++) {
console.log(lis[i]);
}
3. element.getElementsByTagName() 可以得到这个元素里面的某些标签
var nav1 = document.getElementById('nav'); // 通过Id先获得nav的元素, 注意 获得id的没有s 是ment
var nav2 = nav1.getElementsByTagName('li');
console.log(nav2);
2.3 通过 HTML5 新增的方法获取
- document.getElementsByClassName(‘类名’) 根据类型返回元素对象的结合(class类名)
- document.querySelector(‘选择器’); 根据指定选择器返回第一个元素对象
- document.querySelectorAll(‘选择器’); 根据指定选择器返回(当选择器有多个时使用)
1. getElementsByClassName('类名') 根据类名获得某些元素的集合
var boxs = document.getElementsByClassName('box');
console.log(boxs);
2. document.querySelector('选择器') 返回指定选择器的 第一个 元素对象
切记!!! 里面的选择器需要加符号 .box #nav li
var firstBox = document.querySelector(