目录

BOM对象

基本介绍

BOM中提供了如下5个对象:

Window对象

window对象属性

window对象方法

alert()函数

confirm()函数

setInterval(fn,毫秒值)

setTimeout(fn,毫秒值)

Location对象

DOM对象

基本介绍

获取DOM对象

JavaScript事件

事件基本介绍

事件绑定

常见事件


在上一节我们讲解了JavaScript的一些对象,接下来我们来看看BOM对象和DOM对象

BOM对象

基本介绍

BOM的全称是Browser Object Model,翻译过来是浏览器对象模型。也就是JavaScript将浏览器的各个组成部分封装成了对象。我们要对浏览器进行操作,可以通过操作BOM对象的相关属性或者函数来完成。

BOM中提供了如下5个对象:

对象名称 描述
Window 浏览器窗口对象
Navigator 浏览器对象
Screen 屏幕对象
History 历史记录对象
Location 地址栏对象

Window对象

window对象指的是浏览器窗口对象,是JavaScript的全部对象,所以对于window对象,我们可以直接使用

我们之前最长使用的alert,其实是简化之后的写法,正常的写法是window.alert(),只不过我们是把window给省略掉了

window.alert('hello');

简化之后的写法

window.alert('hello');

window对象属性

window对象提供了获取其他BOM对象的属性:

属性 描述
history 用于获取history对象
location 用于获取location对象
Navigator 用于获取Navigator对象
Screen 用于获取Screen对象

window对象方法

window也提供了一些常用的函数,如下表格所示:

函数 描述
alert() 显示带有一段消息和一个确认按钮的警告框。
comfirm() 显示带有一段消息以及确认按钮和取消按钮的对话框。
setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式。
setTimeout() 在指定的毫秒数后调用函数或计算表达式。

alert()函数

作用:弹出警告框,函数的内容就是警告框的内容

代码演示:

<script>//window对象是全局对象,window对象的属性和方法在调用时可以省略window.window.alert("Hello BOM");alert("Hello BOM Window");
</script>

confirm()函数

作用:弹出确认框,并且提供用户2个按钮,分别是确认和取消。

这个函数有一个返回值,当用户点击确认时,返回true,点击取消时,返回false。我们根据返回值来决定接下来的逻辑

代码演示:

var flag = confirm("您确认删除该记录吗?");
alert(flag);

setInterval(fn,毫秒值)

作用:定时器,用于周期性的执行某个功能,并且是循环执行。该函数需要传递2个参数:

fn:函数,需要周期性执行的功能代码

毫秒值:间隔时间

代码演示:

//定时器 - setInterval -- 周期性的执行某一个函数
var i = 0;
setInterval(function(){i++;console.log("定时器执行了"+i+"次");
},2000);

setTimeout(fn,毫秒值)

作用:定时器,只会在一段时间后执行一次功能。参数和上述setInterval一致

代码演示:

//定时器 - setTimeout -- 延迟指定时间执行一次
setTimeout(function(){alert("JS");
},3000);

Location对象

location是指代浏览器的地址栏对象,对于这个对象,我们常用的是href属性

代码演示:

//获取浏览器地址栏信息
alert(location.href);
//设置浏览器地址栏信息
location.href = "https://www.itcast.cn";

BOM对象完整代码

<!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>JS-对象-BOM</title>
</head>
<body></body>
<script>//获取// window.alert("Hello BOM");// alert("Hello BOM Window");//方法//confirm - 对话框 -- 确认: true , 取消: false// var flag = confirm("您确认删除该记录吗?");// alert(flag);//定时器 - setInterval -- 周期性的执行某一个函数// var i = 0;// setInterval(function(){//     i++;//     console.log("定时器执行了"+i+"次");// },2000);//定时器 - setTimeout -- 延迟指定时间执行一次 // setTimeout(function(){//     alert("JS");// },3000);//locationalert(location.href);location.href = "www.baidu.com";</script>
</html>

DOM对象

基本介绍

DOM:Document Object Model 文档对象模型。也就是 JavaScript 将 HTML 文档的各个组成部分封装为对象。

  • Document:整个文档对象

  • Element:元素对象

  • Attribute:属性对象

  • Text:文本对象

  • Comment:注释对象

获取DOM对象

HTML中的Element对象可以通过Document对象获取,而Document对象是通过window对象获取的。

函数 描述
document.getElementById() 根据id属性值获取,返回单个Element对象
document.getElementsByTagName() 根据标签名称获取,返回Element对象数组
document.getElementsByName() 根据name属性值获取,返回Element对象数组
document.getElementsByClassName() 根据class属性值获取,返回Element对象数组

document.getElementById(): 根据标签的id属性获取标签对象,id是唯一的,所以获取到是单个标签对象。

代码演示:

<script>
//1. 获取Element元素//1.1 获取元素-根据ID获取var img = document.getElementById('h1');alert(img);
</script>

document.getElementsByTagName() : 根据标签的名字获取标签对象,同名的标签有很多,所以返回值是数组。

代码演示:

//1.2 获取元素-根据标签获取 - div
var divs = document.getElementsByTagName('div');
for (let i = 0; i < divs.length; i++) {alert(divs[i]);
}

document.getElementsByName() :根据标签的name的属性值获取标签对象,name属性值可以重复,所以返回值是一个数组

代码演示:

//1.3 获取元素-根据name属性获取
var ins = document.getElementsByName('hobby');
for (let i = 0; i < ins.length; i++) {alert(ins[i]);
}

document.getElementsByClassName() : 根据标签的class属性值获取标签对象,class属性值也可以重复,返回值是数组。

代码演示:

//1.4 获取元素-根据class属性获取
var divs = document.getElementsByClassName('cls');
for (let i = 0; i < divs.length; i++) {alert(divs[i]);
}

DOM对象全部代码

<!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>JS-对象-DOM</title>
</head><body><img id="h1" src="img/off.gif"> <br><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"> 游戏
</body>
<script>// DOM的介绍// DOM:Document Object Model 文档对象模型。也就是 JavaScript 将 HTML 文档的各个组成部分封装为对象。// 分为这五种对象// - Document:整个文档对象// - Element:元素对象// - Attribute:属性对象// - Text:文本对象// - Comment:注释对象//HTML中的Element对象可以通过Document对象获取,而Document对象是通过window对象获取的。document对象提供的用于获取Element元素对象的api如下表所示:// | document.getElementById()         | 根据id属性值获取,返回单个Element对象    |// | document.getElementsByTagName()   | 根据标签名称获取,返回Element对象数组    |// | document.getElementsByName()      | 根据name属性值获取,返回Element对象数组  |// | document.getElementsByClassName() | 根据class属性值获取,返回Element对象数组 |//1. 获取Element元素//1.1 获取元素-根据ID获取// var img = document.getElementById('h1');// alert(img);//1.2 获取元素-根据标签获取 - div// var divs = document.getElementsByTagName('div');// for (let i = 0; i < divs.length; i++) {//     alert(divs[i]);// }//1.3 获取元素-根据name属性获取// var ins = document.getElementsByName('hobby');// for (let i = 0; i < ins.length; i++) {//     alert(ins[i]);// }//1.4 获取元素-根据class属性获取// var divs = document.getElementsByClassName('cls');// for (let i = 0; i < divs.length; i++) {//     alert(divs[i]);// }//2. 查询参考手册, 属性、方法//先通过class的属性值获取对象,返回的是一个Element对象数组var divs = document.getElementsByClassName('cls');//数组中的第一个元素就是我们要修改的元素,将第一个元素的值修改赋值给一个变量div1 var div1 = divs[0];//然后调用方法就可以修改或者设置属性的值//innerHTML该方法可以设置或者返回元素的内容</script></html>

JavaScript事件

事件基本介绍

比如我们在一个注册页面的时候,当我们输入完内容之后点击提交,这时候就会触发一个事件

那么什么是事件 比如

1.按钮被点击

2.鼠标移到元素上

3.输入框失去焦点

事件绑定

JavaScript对于事件的绑定提供了2种方式:

方式1:通过html标签中的事件属性进行绑定

例如一个按钮,我们对于按钮可以绑定单机事件,可以借助标签的onclick属性,属性值指向一个函数。

<input type="button" id="btn1" value="事件绑定1" onclick="on()">

很明显没有on函数,所以我们需要自己定义该函数

<script>function on(){alert("按钮1被点击了...");}
</script>

方式2:通过DOM中Element元素的事件属性进行绑定

依据我们学习过得DOM的知识点,我们知道html中的标签被加载成element对象,所以我们也可以通过element对象的属性来操作标签的属性。

<input type="button" id="btn2" value="事件绑定2">

我们可以先通过id属性获取按钮对象,然后操作对象的onclick属性来绑定事件

document.getElementById('btn2').onclick = function(){alert("按钮2被点击了...");
}

注意的是:事件绑定的函数,只有在事件被触发时,函数才会被调用

常见事件

事件属性名 说明
onclick 鼠标单击事件
onblur 元素失去焦点
onfocus 元素获得焦点
onload 某个页面或图像被完成加载
onsubmit 当表单提交时触发该事件
onmouseover 鼠标被移到某元素之上
onmouseout 鼠标从某元素移开

onfocus:获取焦点事件,鼠标点击输入框,输入框中光标一闪一闪的,就是输入框获取焦点了

onblur:失去焦点事件,前提是输入框获取焦点的状态下,在输入框之外的地方点击,光标从输入框中消失了,这就是失去焦点

web前端-JavaScript(3)相关推荐

  1. Web前端-JavaScript基础教程上

    Web前端-JavaScript基础教程 将放入菜单栏中,便于阅读! JavaScript是web前端开发的编程语言,大多数网站都使用到了JavaScript,所以我们要进行学习,JavaScript ...

  2. Web前端JavaScript笔记(4)节点

    如何获取元素节点的属性: 在Web前端JavaScript笔记(3)对象中,介绍了访问行间属性的方法,除此之外,系统还提供了三个方法访问元素的属性: 1. setAttribute: 2. getAt ...

  3. Web前端-JavaScript基础教程下

    Web前端-JavaScript基础教程下 <script>有6个属性: async对外部脚本有效,可以用来异步操作,下载东西,不妨碍其他操作. charset为src属性指定字符集. d ...

  4. web前端JavaScript嵌入百度地图API的方法 最详细

    web前端JavaScript嵌入百度地图API最详细的方法 一.申请成为百度开发者,获得使用地图API接口的权限,获取(AK)码. 二.实现首图效果(可以参考开发者指南) 1. 根据Hello Wo ...

  5. Web前端Javascript笔记(6)正则表达式

    在web前端中,假设用户需要提交表单,在表单提交到服务器进一步处理之前,Javascript程序会检查表单,以确认用户输入的信息是符合规范要求的.这些工作可以使用正则表达式完成,正则表达式是一个描述字 ...

  6. web前端JavaScript程序员必学技术指南

    JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果.通常JavaScript脚本是通过嵌入在HTML中来实现 ...

  7. Web前端——JavaScript(bom文档对象模型)

    >window对象 是bom的顶层对象,其中包含document对象: Window 对象表示浏览器中打开的窗口. 如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML ...

  8. Web前端Javascript笔记(8)Ajax前后端交互

    认识Ajax 全名Asynchronous Javascript and XML(异步JavaScript和XML),节省用户操作时间,提高用户体验,减少数据请求,传输获取数据.Ajax相当于前后台数 ...

  9. Web前端Javascript笔记(5)事件

    1. 什么是事件:事件是指发生并得到处理的操作 JavaScript中的事件是由访问web页面的用户引起的一系列操作,例如,用户的点击操作,JavaScript中有两种事件模型:内联模型,脚本模型. ...

  10. Web前端 Javascript笔记(1)数组

    结构 :html构建 样式:css控制 行为:JavaScript实现 什么是JavaScript? JavaScript是一种跨平台的脚本语言,平台,即运行环境,一般指操作系统. --------- ...

最新文章

  1. 计算机主机电池,为什么电脑主机板上面有电池?很多人可能根本不知道
  2. 在QT搭建的播放器外壳中嵌入SDL的窗口
  3. 计算机视觉开源库OpenCV之threshold()函数详解
  4. Netty实例:实现简单的通讯功能
  5. Shell脚本中字符串的一些常用操作
  6. DolphinPHP
  7. java axis2 开发webservice_利用Axis2开发WebService(3)—用Java实现调用WebService的客户端程序 | 学步园...
  8. maven搭建mybatis测试
  9. winHex创建指定大小二进制文件.bin(数据为全0或全FF或自己填充)并带winHex软件下载包
  10. p2p - cdn传输技术杂谈
  11. Endnote导出GB/T 7714-2015 格式参考文献
  12. 阳光牧场助手 阳光牧场外挂
  13. b-spline学习-系数计算及程序实践
  14. 惠普笔记本重装系统按哪个键
  15. android仿百度新闻,【Android】最新主流新闻app功能实现。仿网易,搜狐等新闻客户端实现展示...
  16. 《软件随想录-Joel on Software》书摘
  17. MAC 常用终端命令
  18. FKMT--创建凭证模板
  19. Springboot Application 集成 OSGI 框架开发
  20. 享受知识饕餮盛宴,尽在近期课程安排

热门文章

  1. Modbus转Profinet网关连接海利普变频器配置方法
  2. Android 学习之路 四大组件之Activity1(内置人品计算器)
  3. autoHotkey —同个快捷键在不同网页中不同功能
  4. 弱口令到底是什么牛马?
  5. 阿里花500万年薪招天才黑客?官方回应:这种人得交给警察
  6. iOS微博项目(五)- 实现超链接和时间,下拉,未读数,微博正文,评论
  7. 17090601_CentOS7(64位)永中Office安装卸载
  8. 沉降自动化监测分享(转载)
  9. 出嫁前的最后一次人生演习(1)
  10. 麦子学院深度学习基础 —— 机器学习 —— 最近邻规则分类 KNN 算法