WebAPIs 第一天

news/2024/11/8 5:52:51/

1.声明变量const优先(补充)

2.WebAPI基本认知

  • 作用和分类
  •  DOM树和DOM对象

3.获取DOM元素

4.DOM修改元素内容

5.操作元素属性

6.定时器-间歇函数

一.声明变量const优先

①  变量声明有var let const

②  建议const优先,尽量使用const,原因是:

  • const语义化更好
  • 很多变量我们声明的时候就知道不会修改了,就使用const
  • 实际开发中,基本都使用const
  • 建议先给const,如果发现后面是被修改的,改为let
  • const声明的值不能更改,const声明变量的时候需要进行初始化
  • 对于引用类型,const声明的变量,里面存的不是值,是地址

③ const声明的对象为什么可以修改里面的属性

  • 因为对象是引用类型,里面存储的是地址,只要地址不变,就不会报错 

二. WebAPI基本认知

① 作用和分类

  • 作用:就是使用JS去操作html和浏览器
  • 分类:DOM(文档对象模型)   BOM(浏览器对象模型)

② DOM

  •  概念:文档对象模型是用来呈现以及与任意HTML或XML文档交互的API,是浏览器提供一套专门用来操作网页内容的功能
  • 作用:开发网页内容特效和实现用户交互

③ DOM树

  • 将HTML文档以树的结构直观的表现出来,我们称为文档树或者DOM树
  • 描述网页内容关系的名词
  • 作用:文档树直观的体现了标签与标签之间的关系

 

 ④ DOM对象:浏览器根据html标签生成的JS对象

  • 所有的标签属性都可以在这个对象上找到
  • 修改这个对象的属性会自动映射到标签身上

⑤ DOM的核心思想:把网页内容当作对象处理

⑥ document 对象

  • 是DOM里提供一个对象
  • 所以它提供的属性和方法都是用来访问和操作网页内容的
  • 网页所有内容都在document里面

三.获取DOM元素

① 两种方式

  • 根据CSS选择器来获取DOM元素(重点)
  • 其他获取DOM元素方法(了解)

② 选择匹配的第一个元素

  语法:document.querySelector('css选择器')

  参数:包含一个或多个有效的CSS选择器 字符串

  返回值:CSS选择器匹配的第一个元素,一个HTMLElement对象

 如果没有匹配到,则返回null

③ 选择匹配的多个元素

 语法:document.querySelectorAll('css选择器')

参数:包含一个或多个有效的CSS选择器 字符串

返回值:CSS选择器匹配到的NodeList 对象集合

举例:

const lis = document.querySelectorAll('ul li')

得到的是一个伪数组(有长度有索引号,但是没有push和pop方法)

哪怕只有一个元素,通过querySelectAll获取过来的也是一个伪数组,里面只有一个元素

遍历:

const lis = document.querySelectorAll('.nav li')
for (let i = 0; i < lis.length; i++) {console.log(lis[i]);
}

④ 其他方式 (了解)

  • document.getElementById('nav')   通过id获取一个元素

  • document.getElementsByTagName('div') 根据标签获取一类元素,获取页面所有div

  • document.getElementsByClassName('w')  根据类名获取元素 获取页面所有类名为w的元素

四.DOM修改元素内容

  •  DOM对象都是根据标签生成的,所以操作标签,本质上就是操作DOM对象
  • 就是操作对象使用的点语法
  • 如果想要修改标签元素的里面的内容,可以使用以下方式

        ① 对象.innerText属性

  •  将文本内容添加/更新到任意标签位置
  • 显示纯文本,不解析标签                          

        ② 对象.innerHTML属性

  • 将文本内容添加/更新到任意标签位置
  • 会解析标签,多标签建议使用模板字符
const box = document.querySelector('.box')
console.log(box.innerText)   // 获取文字内容
box.innerText = '我是一个盒子'  // 修改文字内容
box.innerText = '<strong>我是一个盒子</strong>'   // 不解析标签
// 解析标签
box.innerHTML = '<strong>我是一个盒子</strong>'

五.操作元素属性

1.操作元素常用属性

2.操作元素样式属性

3.操作表单元素属性

4.自定义属性

5.1 操作元素常用属性

  • 可以通过JS设置/修改标签元素属性,通过src更换图片
  • 常见的属性:href title src
  • 语法:对象.属性 = 值
const img = document.querySelector('img')
img.src = './images/2.webp'

 5.2 操作元素样式属性

  • 通过style 属性操作CSS
  • 通过类名(className)操作CSS
  • 通过classList操作类控制CSS

① 通过style属性操作CSS

语法:对象.style.样式属性 = 值

// 1.获取元素
const box = document.querySelector('.box')
// 2.修改样式属性, 多组单词采用小驼峰命名法
box.style.width = '100px'
box.style.backgroundColor = 'hotpink'
box.style.border = '2px solid blue'

注意:

1.修改样式用过style属性引出

2.如果属性有-连接符,需要转化成小驼峰命名法

3.在赋值的时候,不要忘记加单位

② 通过类名(className)操作CSS

  • 如果修改的样式比较多,直接通过style属性修改比较繁琐,可以借助css类名的形式
  • 语法:元素.className = 'active'
const div = document.querySelector('div')
// 多个类名
div.className = 'box nav'

注意

  • 由于class是关键字,所以使用className去代替
  • className是使用新值换旧值,如果需要添加一个类,需要保留之前的类名

③ 通过classList 操作类控制CSS

  • 为了解决className容易覆盖以前的类名,可以通过classList的方式追加和删除类名
  •  语法:追加(add)    删除(remove)  有旧删除,没有就增加(toggle)
// classList  add 追加 类名不加点,并且是字符串
const box = document.querySelector('.box')
box.classList.add('active')
//  删除类box.classList.remove('box')
// toggle 有就删除,没有就增加
box.classList.toggle('box')

5.3 操作表单元素属性

  • 表单很多情况也需要修改属性,比如小眼睛,可以看到密码,本质就是把表单类型转换为文本框

       获取:DOM对象.属性名                表单.value = '用户名'

       设置:DOM对象.属性名 = 新值     表单.type = 'password'

const uname = document.querySelector('input')
//  1.获取表单里面输入的数据,innerHTML 得不到表单中输入的内容console.log(uname.value)
// 2.设置表单的值   innerHtml得不到表单的内容
uname.value = 'kkkk'
uname.type = 'password'
  • 表单属性中添加就有效果,移除就没有效果,一律使用布尔值表示,如果为true就表示添加了改属性,如果为false就表示移除了该属性
const ipt = document.querySelector('input')
console.log(ipt.checked)
// 只接受bool值
ipt.checked = trueconst btn = document.querySelector('button')
btn.disabled = true

5.4 自定义属性

  • 标准属性:标签天生自带的,比如class id titlt等,可以直接使用点语法操作,比如disabled, checked
  • 自定义属性

        ① 在html5中推出专门的data-自定义属性

        ② 在标签上一律以data-开头

<div data-id="1" data-spm="hello">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>

        ③ 在DOM对象上一律以dataset对象方式获取

const one = document.querySelector('div')
console.log(one.dataset.id)
console.log(one.dataset.spm)

六.定时器 -间歇函数

6.1 定时器函数介绍

① 每隔一段事件就需要自动执行一段代码,不需要手动触发

② 定时器函数可以开启定时器和关闭定时器

(1)开启定时器

  •   作用:每隔一段时间调用一下这个函数
  •   间隔时间单位是毫秒
  •  定时器返回的是一个id数字
setInterval(函数,间隔时间)setInterval(function () {console.log('一秒执行一次')
}, 1000)function fn () {console.log('一秒执行一次')
}//  调用的时候写的是函数名,不要加小括号
// 不是立即执行,是经过1000秒之后才执行
let n = setInterval(fn, 1000)// 这样写也是可以的
// setInterval('fn()', 1000) 

(2)关闭定时器

function fn () {console.log('一秒执行一次')
}
//  调用的时候写的是函数名,不要加小括号
// 不是立即执行,是经过1000秒之后才执行
let n = setInterval(fn, 1000)
clearInterval(n)


http://www.ppmy.cn/news/1027830.html

相关文章

每天40min,我们一起用70天稳扎稳打学完《JavaEE初阶》——13/70 第十三天【JavaEE初阶 面试题(一)】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示:重难点★✔ 蓝色文字表示:思路以及想法★✔   如果大家觉得有帮助的话,感谢大家帮忙 点…

EPICS libCom库(1)-- dbmf

dbmf.h(数据库宏/Free)描述一个工具&#xff0c;它防止内存被分配时并且短时间之后被释放时内存碎片化。 在iocCore内像dbLoadDatabase()的例程具有以下特性&#xff1a; 1&#xff09; 它们重复地调用malloc()&#xff0c;之后快速调用free()释放临时分配的存储区。 2&…

Codeforces Round 892 (Div. 2) C. Another Permutation Problem 纯数学方法 思维题

Codeforces Round 892 (Div. 2) C. Another Permutation Problem 源码&#xff1a; #include <iostream> #include <algorithm> #include <set> #include <map> #include <queue> #include <vector> #include <stack> #include &l…

买爱心气球(nim博弈)

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 Alice 和 Bob 是一对竞技编程选手&#xff0c;他们路过了一家气球店&#xff0c;发现有 m 个大爱心气球和 n个小爱心气球。他们决定玩一个游戏&#xff0c;游戏规则如下&#xff1a; Alice先手拿…

每期一个小窍门: go处理异常的一些小窍门

go设计者更偏向于C的error处理方式, 快速失败是更简单高效的 我们可以利用error接口和多返回值来实现异常传递 error可以利用变量来复用 等价判断 var outOfRangeError errors.New("number out of range") var unknownError errors.New("unknown type erro…

NPM与外部服务的集成(上)

目录 1、关于访问令牌 1.1 关于传统令牌 1.2 关于粒度访问令牌 2、创建和查看访问令牌 2.1 创建访问令牌 在网站上创建传统令牌 在网站上创建粒度访问令牌 使用CLI创建令牌 CIDR限制令牌错误 查看访问令牌 在网站上查看令牌 在CLI上查看令牌 令牌属性 1、关于访问令…

视频分辨率: UXGA/SVGA/VGA/QVGA/QQVGA

视频分辨率除了常见的720p/2K/4K外, 还有VGA系列的分辨率 相关字段含义: V——Video &#xff08;视频&#xff09; G——Graphics&#xff08;图像&#xff09; A——Array&#xff08;阵列&#xff09; S——Super(超级) X——Extended(扩展) U——Ultra(终极) W——Wide&am…

c++ 有元

友元分为两部分内容 友元函数友元类 友元函数 问题&#xff1a;当我们尝试去重载operator<<&#xff0c;然后发现没办法将operator<<重载成成员函数。因为cout的输出流对象和隐含的this指针在抢占第一个参数的位置。this指针默认是第一个参数也就是左操作 数了。…