WebAPIs 第一天

news2024/11/23 9:30: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 = true

const 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.coloradmin.cn/o/868868.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【枚举+推式子】牛客小白月赛 63 E

登录—专业IT笔试面试备考平台_牛客网 题意&#xff1a; 思路&#xff1a; 首先是个计数问题&#xff0c;考虑组合数学 组合数学就是在考虑枚举所有包含1和n的区间 这个典中典就是枚举1和n的位置然后算贡献 双指针超时&#xff0c;考虑推式子&#xff1a; Code&#xff1a…

分类过程中的一种遮挡现象

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点&#xff0c;AB训练集各由6张二值化的图片组成&#xff0c;让A&#xff0c;B中各有3个点&#xff0c;且不重合&#xff0c;统计迭代次数并排序。 其中有10组数据 差值结构 迭代次数 构造平均列A 构造平均列AB…

C++笔记之函数参数列表中设置默认值

C笔记之函数参数列表中设置默认值 code review! 代码 #include <iostream>// 函数声明时设置默认值 void printInfo(std::string name "Unknown", int age 0);int main() {printInfo(); // 使用默认参数值printInfo("Alice", 25);…

Scractch3.0_Arduino_ESP32_学习随记_蓝牙鼠标(四)

蓝牙鼠标 目的器材程序联系我们 目的 通过C02实现蓝牙鼠标。 器材 硬件: 齐护机器人C02 购买地址 软件:scratch3.0 下载地址:官网下载 程序 蓝牙鼠标使用使用ESP32自带的BLE蓝牙&#xff0c;不需要再外接模块。可以实现鼠标移动&#xff0c;左右键的点击动作。 联系我们…

C++进阶 智能指针

本篇博客简介&#xff1a;介绍C中的智能指针 智能指针 为什么会存在智能指针内存泄露内存泄漏定义内存泄漏的危害如何检测内存泄漏如何避免内存泄漏 智能指针的使用及其原理RAII设计一个智能指针C官方的智能指针 定制删除器智能指针总结 为什么会存在智能指针 我们首先来看下面…

消息队列(11) - 通信协议的设计

目录 通信协议设计代码实现 通信协议设计 对于我们客户端与服务器之间的通信协议我们约定如下&#xff1a; 具体的协议设计: 之后我们传递的参数也是这些 关于 type其实是在描述当前这个请求 、 响应是在调用那个API 约定如下 对于channel ,是tcp链接中的一个逻辑上的链接,…

Python实现图片文本支持中文,自定义字体

Python实现图片文本支持中文&#xff0c;自定义字体 # 支持中文 import matplotlib #用下载好的字体文件设置字体&#xff0c;从而正确显示中文 myfont matplotlib.font_manager.FontProperties(fnamer"./simsun.ttc") # 自定义的字体文件 plt.figure(figsize (1…

udp一般不会存在错数据

UDP在传输过程中会出现丢包的情况&#xff0c;但不会导致数据错乱的情况&#xff0c;这涉及到UDP协议的特性和工作原理。 无连接性&#xff1a;UDP是一种无连接的传输协议&#xff0c;每个UDP数据包都是独立的&#xff0c;没有依赖关系。因此&#xff0c;即使发生数据包丢失&am…

Golang 局部变量、全局变量 声明

文章目录 一、局部变量二、全局变量 一、局部变量 四种声明方式 多变量声明&#xff1a; package mainimport "fmt"//局部变量声明 func main() {//方法一: 声明一个变量和数据类型&#xff0c;不初始化值&#xff1b;默认值为0&#xff1b;var lvA intfmt.Printl…

圆圈中最后剩下的数字——剑指 Offer 62

文章目录 题目描述解法一题目描述 解法一 class Solution

Spring MVC静态资源映射

Spring MVC静态资源映射 静态资源映射。使用容器的默认Servletlocationmapping&#xff1a;cache-periodorder Spring MVC需要对RESTful风格的URL提供支持&#xff0c;而真正的RESTful风格的URL不应该带有任何后缀&#xff0c;因此将Spring MVC拦截的URL改为“/”&#xff08;正…

使用蓝牙外设却不小心把台式机电脑蓝牙关了

起因 今天犯了一个贼SB的错误&#xff0c;起因是蓝牙键盘突然就不能输入了&#xff08;虽然是连接状态&#xff0c;但是按什么键都没有反应&#xff09; 原来我的解决方法就是重启一下电脑&#xff0c;但是那会电脑开了贼多的软件。我就想重启也太麻烦了&#xff0c;既然重启…

Java之继承

继承 继承为什么使用继承继承是什么继承的语法访问父类成员访问父类成员变量访问父类成员方法 super关键字子类构造方法super和this异同分别的使用方法 继承的方式final关键字 作者简介&#xff1a; zoro-1&#xff0c;目前大一&#xff0c;正在学习Java&#xff0c;数据结构等…

【算法挨揍日记】day02——双指针算法_快乐数、盛最多水的容器

202. 快乐数 202. 快乐数https://leetcode.cn/problems/happy-number/ 题目&#xff1a; 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个…

Python接口自动化之request请求封装

我们在做自动化测试的时候&#xff0c;大家都是希望自己写的代码越简洁越好&#xff0c;代码重复量越少越好。那么&#xff0c;我们可以考虑将request的请求类型&#xff08;如&#xff1a;Get、Post、Delect请求&#xff09;都封装起来。这样&#xff0c;我们在编写用例的时候…

OptaPlanner笔记2

1.5.3 使用maven 修改pom.xml 导入optaplanner-bom以避免为每一个依赖项重复添加版本号 <project>...<dependencyManagement><dependencies><dependency><groupId>org.optaplanner</groupId><artifactId>optaplanner-bom</art…

使用 CycleGAN 进行图像到图像转换

介绍 在人工智能和计算机视觉领域,CycleGAN 是一项非凡的创新,它重新定义了我们感知和操作图像的方式。这种尖端技术彻底改变了图像到图像的转换,实现了领域之间的无缝转换,例如将马变成斑马或将夏日风景变成雪景。在本文中,我们将揭开 CycleGAN 的魔力,并探索其在各个领…

微信小程序开发价格

小程序开发费用 小程序的开发费用是很多企业和个人在规划项目时需要重点考虑的一个方面。本文将从微信认证费、域名、服务器、程序开发费用、微信支付费率以及维护费用等多个角度为大家分析小程序开发费用的组成。 1. 微信认证费&#xff1a;作为小程序的一种信任凭证&#xf…

对文件的读取和修改 JAVA

目录 1、try catch:2、hasNextLine():3、java读取某个文件夹信息&#xff1a;4、修改&#xff1a; 1、try catch: 1、try语句对你觉得可能会有问题的语句进行尝试 2、try内语句出现错误会被catch语句捕捉&#xff0c;且整个程序不会崩溃 3、try语句出错才会执行下方catch语句…

机器学习实战4-数据预处理

文章目录 数据无量纲化preprocessing.MinMaxScaler&#xff08;归一化&#xff09;导库归一化另一种写法将归一化的结果逆转 preprocessing.StandardScaler(标准化)导库实例化查看属性查看结果逆标准化 缺失值impute.SimpleImputer另一种填充写法 处理分类型特征&#xff1a;编…