博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【前端】JS的BOM和DOM,事件,表单验证案例
阅读量:4285 次
发布时间:2019-05-27

本文共 6154 字,大约阅读时间需要 20 分钟。

先看小练习1:开关灯

用到的Dom相关知识点

* 功能:控制html文档的内容* 获取页面标签(元素)对象:Element	* document.getElementById("id值"):通过元素的id获取元素对象* 操作Element对象:	1. 修改属性值:		1. 明确获取的对象是哪一个?		2. 查看API文档,找其中有哪些属性可以设置	2. 修改标签体内容:		* 属性:innerHTML		1. 获取元素对象		2. 使用innerHTML属性修改标签体内容
            

悔创阿里杰克马

用到的事件的知识点

* 功能: 某些组件被执行了某些操作后,触发某些代码的执行。	* 造句:  xxx被xxx,我就xxx		* 我方水晶被摧毁后,我就责备对友。		* 敌方水晶被摧毁后,我就夸奖自己。* 如何绑定事件	1. 直接在html标签上,指定事件的属性(操作),属性值就是js代码		1. 事件:onclick--- 单击事件	2. 通过js获取元素对象,指定事件属性,设置一个函数

开关灯案例代码

    
电灯开关

初始状态,点击该灰色灯泡,改变图片

在这里插入图片描述
在这里插入图片描述

BOM概念和组成

1. 概念:Browser Object Model 浏览器对象模型	* 将浏览器的各个组成部分封装成对象。2. 组成:	* Window:窗口对象	* Navigator:浏览器对象	* Screen:显示器屏幕对象	* History:历史记录对象	* Location:地址栏对象

在这里插入图片描述

BOM对象之Windows窗口对象

3. Window:窗口对象    1. 创建    2. 方法         1. 与弹出框有关的方法:            alert()	显示带有一段消息和一个确认按钮的警告框。            confirm()	显示带有一段消息以及确认按钮和取消按钮的对话框。                * 如果用户点击确定按钮,则方法返回true                * 如果用户点击取消按钮,则方法返回false            prompt()	显示可提示用户输入的对话框。                * 返回值:获取用户输入的值         2. 与打开关闭有关的方法:            close()	关闭浏览器窗口。                * 谁调用我 ,我关谁            open()	打开一个新的浏览器窗口                * 返回新的Window对象         3. 与定时器有关的方式            setTimeout()	在指定的毫秒数后调用函数或计算表达式。                * 参数:                    1. js代码或者方法对象                    2. 毫秒值                * 返回值:唯一标识,用于取消定时器            clearTimeout()	取消由 setTimeout() 方法设置的 timeout。            setInterval()	按照指定的周期(以毫秒计)来调用函数或计算表达式。            clearInterval()	取消由 setInterval() 设置的 timeout。    3. 属性:        1. 获取其他BOM对象:            history            location            Navigator            Screen:        2. 获取DOM对象            document        4. 特点        * Window对象不需要创建可以直接使用 window使用。 window.方法名();        * window引用可以省略。  方法名();

windows对象实例代码

    
Window对象

小练习2:轮播图

    
轮播图

BOM对象之Location对象

4. Location:地址栏对象	1. 创建(获取):		1. window.location		2. location	2. 方法:		* reload()	重新加载当前文档。刷新	3. 属性		* href	设置或返回完整的 URL。
    
Location对象

小练习3:自动跳转

    
自动跳转

5秒之后,自动跳转到首页...

BOM对象之History对象

5. History:历史记录对象    1. 创建(获取):        1. window.history        2. history    2. 方法:        * back()	加载 history 列表中的前一个 URL。        * forward()	加载 history 列表中的下一个 URL。        * go(参数)	加载 history 列表中的某个具体页面。            * 参数:                * 正数:前进几个历史记录                * 负数:后退几个历史记录    3. 属性:        * length	返回当前窗口历史列表中的 URL 数量。

history对象的使用,示例代码1,forward和go方法使用,注意forward()和go(1)可以等效

    
History对象 09页面

history对象的使用,示例代码2,back和go方法使用,注意back()和go(-1)可以等效

    
轮播图

DOM

* 概念: Document Object Model 文档对象模型	* 将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作* W3C DOM 标准被分为 3 个不同的部分:	* 核心 DOM - 针对任何结构化文档的标准模型		* Document:文档对象		* Element:元素对象		* Attribute:属性对象		* Text:文本对象		* Comment:注释对象		* Node:节点对象,其他5个的父对象	* XML DOM - 针对 XML 文档的标准模型	* HTML DOM - 针对 HTML 文档的标准模型

DOM对象之Document:文档对象

* 核心DOM模型:	* Document:文档对象		1. 创建(获取):在html dom模型中可以使用window对象来获取			1. window.document			2. document		2. 方法:			1. 获取Element对象:				1. getElementById()	: 根据id属性值获取元素对象。id属性值一般唯一				2. getElementsByTagName():根据元素名称获取元素对象们。返回值是一个数组				3. getElementsByClassName():根据Class属性值获取元素对象们。返回值是一个数组				4. getElementsByName(): 根据name属性值获取元素对象们。返回值是一个数组			2. 创建其他DOM对象:				createAttribute(name)            	createComment()            	createElement()            	createTextNode()		3. 属性
    
Document对象
div1
div2
div3
div4
div5

DOM对象之Element对象

* Element:元素对象		1. 获取/创建:通过document来获取和创建		2. 方法:			1. removeAttribute():删除属性			2. setAttribute():设置属性
    
Element对象 点我试一试

DOM对象之Node对象

* Node:节点对象,其他5个的父对象		* 特点:所有dom对象都可以被认为是一个节点		* 方法:			* CRUD dom树:				* appendChild():向节点的子节点列表的结尾添加新的子节点。				* removeChild()	:删除(并返回)当前节点的指定子节点。				* replaceChild():用新节点替换一个子节点。		* 属性:			* parentNode 返回节点的父节点。
    
Node对象
div2
div1
删除子节点 添加子节点
* HTML DOM	1. 标签体的设置和获取:innerHTML	2. 使用html元素对象的属性	3. 控制元素样式		1. 使用元素的style属性来设置			如:				 //修改样式方式1		        div1.style.border = "1px solid red";		        div1.style.width = "200px";		        //font-size--> fontSize		        div1.style.fontSize = "20px";		2. 提前定义好类选择器的样式,通过元素的className属性来设置其class属性值。

练习4:动态的表格

    
动态表格
学生信息表
编号 姓名 性别 操作
1 令狐冲 删除
2 任我行 删除
3 岳不群 ? 删除

HTML DOM innerHTML的使用

* HTML DOM	1. 标签体的设置和获取:innerHTML	2. 使用html元素对象的属性	3. 控制元素样式		1. 使用元素的style属性来设置			如:				 //修改样式方式1		        div1.style.border = "1px solid red";		        div1.style.width = "200px";		        //font-size--> fontSize		        div1.style.fontSize = "20px";		2. 提前定义好类选择器的样式,通过元素的className属性来设置其class属性值。

innerHTML示例代码

    
div

HTML DOM控制样式的方法

    
控制样式
div1
div2

事件

* 概念:某些组件被执行了某些操作后,触发某些代码的执行。		* 事件:某些操作。如: 单击,双击,键盘按下了,鼠标移动了	* 事件源:组件。如: 按钮 文本输入框...	* 监听器:代码。	* 注册监听:将事件,事件源,监听器结合在一起。 当事件源上发生了某个事件,则触发执行某个监听器代码。
    
常见事件

练习5:表格全选

    
表格全选
学生信息表
编号 姓名 性别 操作
1 令狐冲 删除
2 任我行 删除
3 岳不群 ? 删除

练习6:表单验证

    
注册页面

新用户注册

USER REGISTER

已有账号?立即登录

转载地址:http://fcvgi.baihongyu.com/

你可能感兴趣的文章
API网关在微服务架构中的应用,这一篇就够了
查看>>
微服务部署:蓝绿部署、滚动部署、灰度发布、金丝雀发布
查看>>
架构成长之路:Spring Cloud微服务如何实现熔断降级?
查看>>
JVM发生内存溢出的8种原因、及解决办法
查看>>
SpringBoot2.0 基础案例(12):基于转账案例,演示事务管理操作
查看>>
高性能负载均衡:nginx搭建tomcat集群
查看>>
Spring切面中的正则表达式
查看>>
一直再说高并发,多少QPS才算高并发?
查看>>
Git恢复之前版本的两种方法reset、revert(图文详解)
查看>>
Maven打包的三种方式
查看>>
电商场景:并发扣库存,怎么保证不超卖又不影响并发性能
查看>>
分布式事务处理方式总结
查看>>
延迟队列有哪些实现方案?说说你的看法
查看>>
厉害了!我们老大半小时把我的springboot项目并发提升几倍
查看>>
Spring 中Bean 的生命周期
查看>>
为什么要用枚举实现单例模式(避免反射、序列化问题)
查看>>
微服务架构下的分布式限流方案思考
查看>>
全网最详细的一篇SpringCloud总结
查看>>
消息中间件中的有序消息,其实是排队但是不能插队
查看>>
不知道分布式事务,还想进互联网大厂
查看>>