js中浏览器常见事件;如何获取页面中的标签

本文详细介绍了JavaScript中的BOM操作,包括如何添加事件、常见的浏览器事件如load、open、scroll、resize和close事件的使用。同时,还探讨了DOM操作中获取页面标签的不同方式,如通过id、class、标签名和name属性值获取,并强调了通过符合语法规范的方式获取标签对象的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BOM操作之浏览器常见事件

什么是事件?

所谓的事件,就类似于一个约定。当触发条件时,就会执行 指定的程序 。
例如:clcik 点击事件
给标签绑定点击事件,当标签触发 点击条件时 执行绑定的程序。

如何添加事件

例如:clcik 点击事件
给标签绑定点击事件 当标签触发 点击条件时 执行绑定的程序

click         点击事件 --- 事件类型
onclick       绑定点击事件 , 给标签绑定一个事件类型
funciton(){}  事件处理函数 , 触发事件时,执行的程序
         也可以是一个已经定义好的函数
实例
<div id="d1">我是div1</div>

<script>
    // 给div标签,绑定了一个事件类型
    // 事件类型是点击事件类型
    // 点div标签被点击时,触发执行程序
    d1.onclick = function(){ 
        console.log('我是div,有人点我');
    }
</script>

如果需要绑定已经定义的函数,必须绑定函数名称,或者变量名称。
绝对绝对绝对,不能有() ,这里绑定的是,函数名称,变量名称中存储的 函数的地址。

实例
<div id="d2">我是div2</div>
<div id="d3">我是div3</div>

<script>
    function fun(){
        console.log('我是定义好的函数程序,绑定给div点击事件')
    }
    // 如果有 () , d2.onclick = fun()
    // 将 fun() 的执行结果, 绑定给事件
    
    var fun2 = function(){
        console.log(123)
    }
    
    // 给点击事件,绑定一个fun函数名称中,存储的函数地址
    // 触发事件时,调用地址,找到对应的函数,执行函数程序
    d2.onclick = fun ; 
    d3.onclick = fun2 ;
</script>

load 事件

页面加载事件。
load事件是当页面程序都加载结束之后,执行的程序。

语法
window.onload = function(){}
如果JavaScript程序定义在其他程序(html,css)之前,为了让js程序能正常被读取,可以绑定 
load 事件,让程序在 页面加载完毕之后,再执行。
但是不推荐使用这种方法。

一般是将script标签,写在程序的最下方。
外部导入js文件,要么放在head中,要么也放在body的最下方。

open 事件

定义打开的页面 — 新窗口打开页面。

语法
window.open('url地址')
注意区别于window.location.href
window.location.href = 'url地址' --- 当前窗口打开页面
实例
<button id="loc">location打开百度</button>
<button id="ope">open打开百度</button>

<script>
    loc.onclick = function(){
        window.location.href = 'https:/www.baidu.com';
    }
    
    ope.onclick = function(){
        window.open('https:/www.baidu.com') ;
    }
</script>

scroll 事件

滚动条事件。
当浏览器 滚动条 位置发生改变时,触发事件。

语法
window.onscroll = function(){}
实例
window.onscroll = function(){
    console.log('我滚了');
}

resize 事件

当页面大小发生改变时,触发事件。

语法
window.onresize = function(){}
实例
window.onresize = function(){
    console.log('我改了');
}

close 事件

关闭当前页面事件。

语法
window.close()
实例
<button id="c">关闭页面</button>

<script>
    c.onclick = function(){
        window.close();
    }
</script>

总结

常用的:
	click    scroll   
	其他不是很常用。
	有的有on,有的没有on,是JavaScript的固定语法形式,记住就行了。

······························································································································

DOM操作之获取页面标签方式

(1) 通过 id属性值获取 标签对象

语法
document.getElementById('id属性值') 
执行结果,只能获取一个标签对象。
注意:id属性值,一定要有引号。
      HTML中,id属性值一定不能重复设定。
实例
var oDiv1 = document.getElementById('div1');
console.log(oDiv1);

(2) 通过 class属性值 获取标签对象

语法
document.getElementsByClassName('class属性值')
Elements 之后有一个s表示复数
class属性,在JavaScript中,一律定义为 className
class关键词用在其他功能上。
执行结果,获取到的是,一个伪数组。
即时只有一个符合条件的标签,获取到的也是一个数组。
数组的单元,是符合条件的标签。
可以通过索引下标,来获取某一个标签对象。
不能被 forEach() 循环遍历
实例
var oDiv2 = document.getElementsByClassName('div2');
console.log(oDiv2);
console.log(oDiv2[0]);
不能被forEach()循环
oDiv2.forEach(function(v){
    console.log(v);
});

(3) 通过 标签名称 获取标签对象

语法
document.getElementsByTagName('标签名称');
获取到是一个伪数组。
数组的单元是符合条件的标签。
不能被forEach()循环遍历。
实例
var oDiv3 = document.getElementsByTagName('div');
console.log(oDiv3);
不能被forEach()循环
oDiv3.forEach(function(v){
    console.log(v);
});

(4) 通过 标签name属性的属性值 获取标签对象

语法
document.getElementsByName('标签name属性的属性值')
获取到的结果是一个伪数组。
数组内容是符合条件的标签。
可以被forEach()循环遍历。
实例
var oSpan = document.getElementsByName('s');
console.log(oSpan);
可以被forEach()循环
oSpan.forEach(function(v){
    console.log(v);
});

推荐方法

(5) 通过 只要是符合语法规范的方式 就能获取到标签对象

语法
document.querySelector()     获取符合条件的第一个标签
document.querySelectorAll()  获取符合条件的所有标签
所有标签是一个伪数组,可以被forEach() 循环遍历

注意:低版本ie不兼容这两种方式
实例
// 通过标签的id属性值来获取,要记得写 # 号
var oQuery1 = document.querySelector('#div1');
console.log(oQuery1);

// 通过标签的class属性值来获取,要记得写 . 号
var oQuery2 = document.querySelector('.div2');
console.log(oQuery2);

// 通过标签的标签名称来获取
// 只获取第一个div标签
var oQuery3 = document.querySelector('div');
console.log(oQuery3);
// 获取所有div标签
var oQuery4 = document.querySelectorAll('div');
console.log(oQuery4);

// 通过属性和属性值获取
// 语法 : ('[属性="属性值"]') 

// 获取name属性值是s的标签
var oQuery5 = document.querySelectorAll('[name="s"]');
console.log(oQuery5);

// 获取type属性值是text的标签
var oQuery6 = document.querySelectorAll('[type="text"]');
console.log(oQuery6);


// 还可以通过标签结构,获取
// ul标签中,子级li标签
// 只要是css语法支持的选择器语法都行
// 父子,后代,兄弟....都支持
var oQuery7 = document.querySelectorAll('ul>li');
console.log(oQuery7);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值