JavaScript(2)-DOM

目录

一. 简介

二.获取元素

三.事件

四.操作元素

1.操作元素内容 

2.操作元素属性 

 五.节点

1.为什么学节点操作?

2.节点的介绍

3.节点的操作

六.案例

1.分时问候

2.仿京东显示隐藏密码明文

3.仿淘宝关闭二维码

10.TAB栏切换 223



一. 简介

文档对象模型(Document Object Model)是处理可扩展标记语言(HTML,XML)的标准变成接口。

DOM树

文档对象模型指的就是将这个文档中的内容都看成对象。

二.获取元素

根据ID获取

<body>
<div id="time">2022-4-11</div>
<script>
//因为文档页面从上往下加载,先得有标签,所以script写到标签的下面
var timer = document.getElementById('time');
alert(typeof timer); //object
console.log(timer);
console.dir(timer);
</script>
</body>

根据标签名获取

<body>
<div id="time" class="ti">2022-4-11</div>
<div>2022-4-12</div>
<script>
var timer = document.getElementsByTagName('div');
console.log(timer); //object
//返回的是伪数组,不支持push pop操作
</script>
</body>

document是获取页面上所有的

如何单独获取某个父标签下的子标签

<body>
<ol id="l1">
    <li></li>
    <li></li>
    <li></li>
</ol>
<script>
var elements = document.getElementsByTagName('ol');
var lis = elements[0].getElementsByTagName('li');
console.log(lis);


var l = document.getElementById('l1');
var liss = l.getElementsByTagName('li');
console.log(liss);
</script>
</body>

根据类名获取元素

var l = document.getElementsByClassName('box1');

指定选择器获取元素

querySelector        

指定选择器,可以是标签,类名或id。只返回符合条件的第一个元素

<box class="box1" id="box11">a</box>
var boxs = document.querySelector('#box11');
var boxs = document.querySelector('.box1');

querySelectorAll

指定选择器,可以获取所有符合条件的元素

var boxs = document.querySelectorAll('.box1');

特殊元素获取

获取body和html

//获取body
var b = document.body;
console.log(b);
//获取html
var h = document.documentElement;
console.log(h);

三.事件

事件基础

事件由三部分组成:事件源,事件类型,事件处理程序

事件源:触发的对象,比如按钮

事件类型:如何触发,比如鼠标点击,鼠标经过等

事件处理程序:通过函数赋值的方式完成

<body>
<button id="btn">A</button>
<script>
var btn = document.getElementById('btn');
btn.onclick = function () {
    alert("B");
}
</script>
</body>

给多个事件源绑定事件

<body>

<button>A</button>
<button>B</button>
<button>C</button>
<button>D</button>
<button>E</button>

<script>
var btns = document.getElementsByTagName('button');
for(var i = 0; i < btns.length; i++){
    btns[i].onclick = function (){
        //其他的按钮颜色失去
        for(var i = 0; i < btns.length; i++){
            btns[i].style.color = '';
        }
        //当前按钮颜色变色
        this.style.color = 'red';
    }
}
</script>
</body>

 排他思想:首先先排除其他人,再设置自己的样式2

注册事件(绑定事件)

传统注册方式

利用on开头的,如onclick

btn.onclick = function(){}  这种方式一个元素同一个事件只能设置一个处理函数,后面的会覆盖掉前面的,因为这种方式是赋值方式

方法监听注册

同一个事件可以添加多个监听器

<body>
<button>tap me</button>


<script>
var btn = document.querySelector('button');
btn.addEventListener('click',function(){
    alert('oops');
})
    /*
    * 第一个参数 type 事件类型字符串 如click,mouseover
    * 第二个参数 listener  事件处理函数,当事件发生时,会调用改监听函数
    * 第三个参数 useCapture  可选参数,是一个布尔值,默认是false
    * */
</script>
</body>

删除事件(解绑事件)

传统注册方式

btn.onclick = null           赋值为null即可

方法监听注册

<body>
<button>tap me</button>


<script>
var btn = document.querySelector('button');
btn.addEventListener('click',fn);
function fn(){
    alert('oops');
    btn.removeEventListener('click',fn);
}
</script>

传入函数的时候需要传入有名字的函数,这样后面才能解绑。

DOM事件流

 事件流描述的是从页面中接收事件的顺序。

事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程即DOM事件流。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值