今日目标
- 掌握 JavaScript 的基础语法
- 掌握 JavaScript 的常用对象(Array、String)
- 能根据需求灵活运用定时器及通过 js 代码进行页面跳转
- 能通过DOM 对象对标签进行常规操作
- 掌握常用的事件
- 能独立完成表单校验案例
DOM:Document Object Model 文档对象模型。也就是 JavaScript 将 HTML 文档的各个组成部分封装为对象。
DOM 其实我们并不陌生,之前在学习 XML 就接触过,只不过 XML 文档中的标签需要我们写代码解析,而 HTML 文档是浏览器解析。封装的对象分为
如下图,左边是 HTML 文档内容,右边是 DOM 树

作用:
JavaScript 通过 DOM, 就能够对 HTML进行操作了
DOM相关概念:
DOM 是 W3C(万维网联盟)定义了访问 HTML 和 XML 文档的标准。该标准被分为 3 个不同的部分:
核心 DOM:针对任何结构化文档的标准模型。 XML 和 HTML 通用的标准
XML DOM: 针对 XML 文档的标准模型
HTML DOM: 针对 HTML 文档的标准模型
该标准是在核心 DOM 基础上,对 HTML 中的每个标签都封装成了不同的对象
<img> 标签在浏览器加载到内存中时会被封装成 Image 对象,同时该对象也是 Element 对象。<input type='button'> 标签在浏览器加载到内存中时会被封装成 Button 对象,同时该对象也是 Element 对象。HTML 中的 Element 对象可以通过 Document 对象获取,而 Document 对象是通过 window 对象获取。
Document 对象中提供了以下获取 Element 元素对象的函数
getElementById():根据id属性值获取,返回单个Element对象getElementsByTagName():根据标签名称获取,返回Element对象数组getElementsByName():根据name属性值获取,返回Element对象数组getElementsByClassName():根据class属性值获取,返回Element对象数组代码演示:
下面有提前准备好的页面:
xxxxxxxxxx
<html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <img id="light" src="../imgs/off.gif"> <br> <div class="cls">传智教育</div> <br> <div class="cls">黑马程序员</div> <br> <input type="checkbox" name="hobby"> 电影 <input type="checkbox" name="hobby"> 旅游 <input type="checkbox" name="hobby"> 游戏 <br> <script> //在此处书写js代码 </script></body></html>
根据 id 属性值获取上面的 img 元素对象,返回单个对象
xxxxxxxxxx
var img = document.getElementById("light");alert(img);
结果如下:

从弹框输出的内容,也可以看出是一个图片元素对象。
根据标签名称获取所有的 div 元素对象
xxxxxxxxxx
var divs = document.getElementsByTagName("div");// 返回一个数组,数组中存储的是 div 元素对象// alert(divs.length); //输出 数组的长度//遍历数组for (let i = 0; i < divs.length; i++) { alert(divs[i]);}
获取所有的满足 name = 'hobby' 条件的元素对象
xxxxxxxxxx
//3. getElementsByName:根据name属性值获取,返回Element对象数组var hobbys = document.getElementsByName("hobby");for (let i = 0; i < hobbys.length; i++) { alert(hobbys[i]);}
获取所有的满足 class='cls' 条件的元素对象
xxxxxxxxxx
//4. getElementsByClassName:根据class属性值获取,返回Element对象数组var clss = document.getElementsByClassName("cls");for (let i = 0; i < clss.length; i++) { alert(clss[i]);}
HTML 中的 Element 元素对象有很多,不可能全部记住,以后是根据具体的需求查阅文档使用。
下面我们通过具体的案例给大家演示文档的查询和对象的使用;下面提前给大家准备好的页面
xxxxxxxxxx
<html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <img id="light" src="../imgs/off.gif"> <br> <div class="cls">传智教育</div> <br> <div class="cls">黑马程序员</div> <br> <input type="checkbox" name="hobby"> 电影 <input type="checkbox" name="hobby"> 旅游 <input type="checkbox" name="hobby"> 游戏 <br> <script> //在此处写js低吗 </script></body></html>
需求:
点亮灯泡
此案例由于需要改变 img 标签 的图片,所以我们查询文档,下图是查看文档的流程:

代码实现:
xxxxxxxxxx
//1,根据 id='light' 获取 img 元素对象var img = document.getElementById("light");//2,修改 img 对象的 src 属性来改变图片img.src = "../imgs/on.gif";
将所有的 div 标签的标签体内容替换为 呵呵
xxxxxxxxxx
//1,获取所有的 div 元素对象var divs = document.getElementsByTagName("div");/* style:设置元素css样式 innerHTML:设置元素内容 *///2,遍历数组,获取到每一个 div 元素对象,并修改元素内容for (let i = 0; i < divs.length; i++) { //divs[i].style.color = 'red'; divs[i].innerHTML = "呵呵";}
使所有的复选框呈现被选中的状态
此案例我们需要看 复选框 元素对象有什么属性或者函数是来操作 复选框的选中状态。下图是文档的查看

代码实现:
xxxxxxxxxx
//1,获取所有的 复选框 元素对象var hobbys = document.getElementsByName("hobby");//2,遍历数组,通过将 复选框 元素对象的 checked 属性值设置为 true 来改变复选框的选中状态for (let i = 0; i < hobbys.length; i++) { hobbys[i].checked = true;}