JavaScript对象与事件

DOM 文档对模型

当访问一个页面时,浏览器会自动创建一个document对象,通过该对象可以操作我们页面上的任何数据实现动态更新。

BOM 浏览器对象模型

它可以控制我们浏览器的前进后退、新建tab,以及网页之间的跳转

一、DOM介绍

1.DOM概念

DOM是文档对象模型,当页面被加载时。浏览器会创建页面的文档对象模型DOM,HTML DOM文档对象是你的页面中所有其他对象的拥有者。

2.HTML DOM模型被解构化为对象树

3.JS功能:

  • 可以改变页面中的所有HTML元素
  • 可以改变页面中的所有HTML属性
  • 可以改变页面中的所有的CSS样式
  • 对页面中的所有时间所做出反应

4.HTML元素寻找方法

  • ID:document.getElementById()
  • 标签:document.getElementsByTagName()
  • 类名:document.getElementsByClassName()

5.查找HTML元素

5.1用过id查找HTML元素

getElementById是方法;innerHTML是该方法的属性,可以用于获取或替换任何HTML元素的内容,包括<html>,<body>。

<body>

<p id="intro">你好世界!</p>

<script>

var x = document.getElementById("intro");

document.write("<p>文本来自 id 为 intro 段落: " + x.innerHTML + "</p>");

</script>

</body>

5.2通过标签名查找HTML元素

<body>

<p>你好世界!</p>

<div id="main">

<p> DOM 是非常有用的。</p>

<p>该实例展示了getElementsByTagName方法</p>

</div>

<script>

var x=document.getElementById("main");

var y=x.getElementsByTagName("p");

document.write('id="main"元素中的第一个段落为:' + y[0].innerHTML);

</script>

</body>

先通过getElementById()的方法获取到div里所有的元素,然后通过getElementByTagName()获取所有p标签元素,docum.write()输出页面信息,属性y[0]索引号代表一个P标签,innerHTML获取页面内容。

5.3通过类名查找HTML元素

<body>

<p class="intro">你好世界!</p>

<script>

x=document.getElementsByClassName("intro");

document.write("<p>文本来自 class 为 intro 段落: " + x[0].innerHTML + "</p>");

</script>

</body>

获取到class为”intro“的元素

6.改变HTML元素

6.1 element.innerHTML

document.getElementById("p1").innerHTML="新文本!"; 在script里直接修改内容

var element=document.getElementById("header");

element.innerHTML="新标题"; 将元素定义为变量,在变量中修改innerHTML

6.2使用事件修改

流程:点击某个元素时——>页面加载——>输入字段被更改

<body>

<h1 id="id1">我的标题 1</h1>

<button type="button" οnclick="document.getElementById('id1').style.color = 'red'">点击我!

</button>

</body>

二、DOM事件

1.事件处理程序调用函数

<body>

<!--this代表标签本身 -->

<h1 οnclick="changeText(this)">请点击此文本!</h1>

<script>

function changeText(id) {

id.innerHTML = "谢谢!";}

</script>

</body>

当用户点击文本时触发changeText函数

2.HTML事件属性

<body>

<p>请点击按钮来显示日期。</p>

<button οnclick="displayDate()">时间是?</button>

<p id="demo"></p>

<script>

function displayDate() {

document.getElementById("demo").innerHTML = Date();

}

</script>

</body>

当用户点击按钮时,displayDate函数将会被执行

3.onchange事件

onchange 当用户改变input输入框内容时执行一段Javascript代码,该事件经常与输入字段验证结合使用

<body>

<script>

function myFunction() {

var x = document.getElementById("fname");

x.value = x.value.toUpperCase();

}

</script>

请输入您的名字:<input type="text" id="fname" οnchange="myFunction()">

</body>

4.onmouseover 和 onmouseout 事件

可以用于将鼠标移至HTML元素上或移除时出发某个函数

<body>

<div οnmοuseοver="mOver(this)" οnmοuseοut="mOut(this)"

style="background-color:#D94A38;width:120px;height:20px;padding:40px;">

请把鼠标移上来</div>

<script>

function mOver(obj) {

obj.innerHTML = "谢谢您"

}

function mOut(obj) {

obj.innerHTML = "请把鼠标移上来"

}

</script>

</body>

5.onmousedown, onmouseup 以及 onclick 事件

onmousedown, onmouseup 以及 onclick 事件构成了完整的⿏标点击事件;⾸先当⿏标按钮被点击时,onmousedown 事件被触发;然后当⿏标按钮被释放时onmouseup 事件被触发;最后,当⿏标点击完成后,onclick 事件被触发。

<body>

<div οnmοusedοwn="mDown(this)" οnmοuseup="mUp(this)"

style="background-color:#D94A38;width:90px;height:20px;padding:40px;">

点击鼠标

</div>

<script>

function mDown(obj) {

obj.style.backgroundColor = "#1ec5e5";

obj.innerHTML = "松开鼠标";

}

function mUp(obj) {

obj.style.backgroundColor="#D94A38";

obj.innerHTML="谢谢您";

}

</script>

</body>

6.事件拓展

contextmenu主要控制和实现是上下文菜单,主要⽤于程序员取消默认的上下⽂菜单

selectstart 主要控制选中内容。

<html>

<head>

<meta charset="utf-8">

<script type="text/javascript">

document.addEventListener('contextmenu', function(e) {e.preventDefault();})

//preventDefault()取消事件的默认动作。

document.addEventListener('selectstart', function(e) {e.preventDefault();})

</script>

</head>

<body>

<p>带到秋来九月八</p>

<p>我花开时百花杀</p>

</body>

</html>

三、JavaScript事件

1.HTML事件

流程:HTML页面完成加载——>HTML输入字段被修改——>HTML按钮被点击。

<body>

<h1>JavaScript 事件</h1>

<button οnclick="document.getElementById('demo').innerHTML=Date()">时间是?</button>

<p id="demo"></p>

</body>

使用this.innerHTML改变自身元素内容

<button οnclick="this.innerHTML=Date()">时间是?</button>

2.常见的HTML事件

事件

描述

onchange

HTML元素已被更改

onclick

用户点击了HTML元素

onmouseover

用户把鼠标移动到HTML元素上

onmouseout

用户把鼠标移开HTML元素

onkeydown

用户按下键盘按键

onload

浏览器已经完成页面加载

3.Event对象

Event 对象代表事件的状态,⽐如事件在其中发⽣的元素、键盘按键的状态、⿏标的位置、⿏标按钮的状态。事件通常与函数结合使⽤,函数不会在事件发⽣前被执⾏。

4.实例

编写一个用户登录页面,当用户名输入”hello“时输出”输入正确“,其他为”输入错误“,当密码和账号任意一个为空时提示”账号不能为空“、”密码不能为空“,重新输入密码时两次密码输入不一致提示用户重新输入。

四、JavaScript BOM

1.JavaScript Window

1.1window对象

  • window对象代表浏览器的窗口
  • 所有全局 JavaScript 对象,函数和变量⾃动成为 window 对象的成员。
  • 全局变量是 window 对象的属性。
  • 全局函数是 window 对象的⽅法。
  • (HTML DOM 的)document 对象也是 window 对象属性:
  • window.document.getElementById('header');等同document.getElementById(”header“);

1.2window对象常用方法

  • window.alert('你好') :弹窗
  • window.confirm('我最帅'):显⽰带有确认和取消按钮的对话框
  • window.prompt('请输⼊你的密码'):显⽰可提⽰⽤⼾输⼊的对话框(按确认,返回输⼊的值)
  • window.open() - 打开新窗⼝
  • window.close() - 关闭当前窗⼝

1.3JavaScript Window Location

window.location.href //返回当前页面的 href (URL)

window.location.hostname //返回 web 主机的域名

window.location.pathname //返回当前页面的路径或文件名

window.location.protocol //返回使用的 web 协议(http: 或 https:)

window.location.assign //加载新文档

2.JavaScript Window History

Window History

histroy对象方法

作用

back()

可以后退功能

forward()

前进功能

go(参数)

参数为1是前进,参数为-1是后退

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值