Web API 基本认知
作用和分类
作用:就是使用JS去操作HTML和浏览器
分类:DOM(文档对象模型)、BOM(浏览器对象模型)
什么是DOM
DOM(Document Object Model———— 文档对象模型)是用来呈现以及任意HTML或XML文档交互的API
白话文:DOM是浏览器提供的一套专门用来操作网页内容的功能
开发网页内容特效和实现用户交互
DOM树

DOM对象(重要)
DOM对象:浏览器根据html标签生成的JS对象
所有的标签属性都可以在这个对象上面找到
修改这个对象的属性会自动映射到标签身上
DOM的核心思想
把网页内容当做对象来处理
document对象
是DOM里提供的一个对象
所以它提供的属性和方法都是来访问和操作网页内容的
网页所有内容都在document里面
获取DOM元素
根据CSS选择器来获取DOM元素
查询特定或所有DOM节点:
使用querySelector方法查找特定标签的节点。
1
| const headingNode = dom.querySelector('h1');
|
使用querySelectorAll方法获取所有DOM节点,适用于需要遍历和处理多个节点的情况。
1
| const allElements = dom.querySelectorAll();
|
参数:
包含一个或多个有效的CSS选择器字符串
返回值:
CSS选择器匹配的第一个元素,一个HTMLElement对象。
操作元素内容
能够修改元素的文本更换内容
DOM对象都是根据标签生成的,所以操作标签,本质上就是操作DOM对象
就是操作对象使用的点语言
.innerText属性
将文本内容添加/更新到任意标签位置
显示纯文本,不解析标签
1 2 3 4 5 6 7 8 9 10 11 12
| <title>Document</title> </head> <body> <div class="box">我是文字内容</div> </body> <script> const box =document.querySelector('.box') console.log(box.innerText) box.innerText='我是一个盒子' </script>
|
.innerHTML属性
innerHTML 属性
获取元素内容最简单的方法是使用 innerHTML 属性。
innerHTML 属性可用于获取或替换 HTML 元素的内容。
innerHTML 属性可用于获取或改变任何 HTML 元素,包括 和
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| </head> <body> <div class="box">我是文字内容</div> </body> <script> const box =document.querySelector('.box') console.log(box.innerHTML) box.innerHTML='<b>我要更换</b>' </script>
|
操作元素常用属性
还可以通过JS设置/修改标签元素属性,比如通过src更换图片
最常见的属性比如:href、title、src等
语法:
1 2 3 4 5
| const pic=document.querSelector('img')
pic.src='' pic.tltle=''
|
页面随机获取图片
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <body> <img src="./"alt=""> <script> function getRandom(N,M){ return Math.floor(Math.random()*(M-N+1))+N } const img =document.querySelector('img') const random =getRandom(1,6) img.src=`./${random}` </script> </body>
|
操作元素样式属性
还可以通过JS设置/修改标签元素的样式属性
比如通过滚轮图小圆点自动更换颜色样式
通过style属性操作CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <style> .box{ width: 200px; height: 200px; background-color: aqua; } </style> </head> <body> <div class="box"></div> <script> const box=document.querySelector('.box') box.style.width='300px' box.style.height='300px' box.style.backgroundColor='hotpink' box.style.border='2px solid blue' </script> </body>
|
操作类名(className)操作CSS
操作类名(className)操作CSS
如果修改的样式比较多,直接通过style属性修改比较繁琐,我们可以通过借助于css类名的形式
注意:
由于class是关键字,所以使用className去代替
className是使用新值换旧值,如果需要添加一个类,需要保留之前的类名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <style> div{ width: 200px; height: 200px; } .box{ width: 300px; height: 300px; background-color: aqua; margin: 100px auto; padding: 10px; border: 1px solid #000; } </style> </head> <body> <div></div> <script> const div =document.querySelector('div') div.className='box' </script> </body>
|
通过classLidt操作类控制CSS
为了解决className容易覆盖以前的类名,我们可以通过classList方式追加和删除类名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <style> .box{ width: 200px; height: 200px; color: aqua; } .active{ color: aquamarine; background-color: bisque; } </style> </head> <body> <div class="box"></div> <script> const box = document.querySelector('.box') box.classList.add('active') box.classList.remove('box') box.classList.toggle('active') </script> </body>
|
操作表单元素 属性
表单很多情况吗,也需要修改属性,比如点击眼睛,可以看到密码,本质是把表单类型转换为文本框
正常的有属性有取值的 跟其他的标签属性没有任何区别
1 2 3 4 5 6 7 8 9 10 11 12
| <body> <input type="text" value="电脑"> <script> const uname=document.querySelector('input') console.log(uname.value) uname.value= '' uname.type='password' </script> </body>
|
复选框
比如:disabled、checked、selected
1 2 3 4 5 6 7 8 9
| <input type="checked" name="" id="">
const ipt = document.querySelector('input')
ipt.checked=true
const button = document.querySelector('button')
button.disabled=true
|
自定义属性
自定义属性:
在html5中推出来了专门的data-自定义属性
在标签上一律以dataset对象方式获取
1 2 3 4 5 6 7 8 9 10 11 12
| <body> <div data-id="1" data-spm="youxianyu">1</div> <div data-id="2">2</div> <div data-id="3">3</div> <div data-id="4">4</div> <div data-id="5">5</div> <script> const one = document.querySelector('div') console.log(one.dataset.id) console.log(one.dataser.spm) </script> </body>
|
间歇函数
定时器函数可以开启和关闭定时器
1.开启定时器
1 2 3 4 5 6 7 8 9
| function repeat(){ consoloe.log('youxianyu') }
setInterval(repeat,1000) ======================== setInterval(function(){ console.log('youxianyu') },1000)
|
2.关闭定时器
1 2
| let timer=setInterval(函数,间隔时间) clearInterval(变量名)
|
1 2 3 4
| let timer = setInterval(function(){ console.log('youxianyu') },1000) clearInterval(timer)
|