Web APls-day01

news2024/12/23 19:29:36

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)        

目录

变量声明

Web API 基本认知 

1 作用和分类

2 什么是DOM 

3 DOM树 

4 DOM对象(重要)

获取DOM元素 

1 根据CSS选择器来获取DOM元素 (重点)

1. 选择匹配的第一个元素

2. 选择匹配的多个元素 

2 其他获取DOM元素方法(了解)​编辑

操作元素内容 

1. 元素innerText 属性 

2. 元素.innerHTML 属性 

操作元素属性 

操作元素常用属性

操作元素样式属性

1. 通过 style 属性操作CSS

2. 操作类名(className) 操作CSS

3. 通过 classList 操作类控制CSS

操作表单元素属性

自定义属性

定时器-间歇函数 

定时器函数介绍

定时器函数基本使用

1. 开启定时器

2. 关闭定时器


变量声明

变量声明有三个 var let 和 const
我们应该用那个呢?
首先var 先排除,老派写法,问题很多,可以淘汰掉…
let or const ?
建议 const 优先 ,尽量使用const,原因是:
        const 语义化更好
        很多变量我们声明的时候就知道他不会被更改了,那为什么不用 const呢?
        实际开发中也是,比如react框架,基本const
如果你还在纠结,那么我建议:
        有了变量先给const,如果发现它后面是要被修改的,再改为let

以下可以将let改为const(值没有变)

 以下不能改(变量赋值在改变)

Web API 基本认知 

1 作用和分类

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

2 什么是DOM 

DOM(Document Object Model—— 文档对象模型 )是用来呈现以及与任意 HTML 或 XML文档交互的API
白话文: DOM是浏览器提供的一套专门用来 操作网页内容 的功能
DOM作用 :开发网页内容特效和实现用户交互

3 DOM树 

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

4 DOM对象(重要)

DOM对象:浏览器根据html标签生成的 JS对象
        所有的标签属性都可以在这个对象上面找到
        修改这个对象的属性会自动映射到标签身上
DOM的核心思想
        把网页内容当做 对象 来处理
document 对象
        是 DOM 里提供的一个 对象
        所以它提供的属性和方法都是 用来访问和操作网页内容的
                例:document.write()
        网页所有内容都在document里面

获取DOM元素 

1 根据CSS选择器来获取DOM元素 (重点)

1. 选择匹配的第一个元素

语法:
参数:
包含一个或多个有效的CSS选择器 字符串
返回值:
CSS选择器匹配的 第一个元素 ,一个 HTMLElement对象。
如果没有匹配到,则返回null。

2. 选择匹配的多个元素 

语法:
参数:
包含一个或多个有效的CSS选择器 字符串
返回值:
CSS选择器匹配的 NodeList 对象集合
得到的是一个 伪数组
        有长度有索引号的数组
        但是没有 pop() ,push() 等数组方法
想要得到里面的每一个对象,则需要遍历(for)的方式获得。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <ul class="nav">
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>
    <script>
        const lis = document.querySelectorAll('.nav li')
        for(let i = 0;i<lis.length;i++)
        {
            console.log(lis[i])
        }
    </script>
</body>
</html>

网页显示为:          

2 其他获取DOM元素方法(了解)

操作元素内容 

DOM对象都是根据标签生成的,所以操作标签,本质上就是操作DOM对象。
就是操作对象使用的点语法。
如果想要修改标签元素的里面的 内容 ,则可以使用如下几种方式:
学习路径:
1. 对象.innerText 属性
2. 对象.innerHTML 属性

1. 元素innerText 属性 

将文本内容添加/更新到任意标签位置
显示纯文本,不解析标签
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div class="box">文字内容</div>
    <script>
        //1.获取元素
        const box = document.querySelector('.box')
        //2.修改文字内容
        box.innerText='<strong>盒子内容</strong>'
    </script>
</body>
</html>

网页显示为:                        

2. 元素.innerHTML 属性 

将文本内容添加/更新到任意标签位置
会解析标签,多标签建议使用模板字符
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div class="box">文字内容</div>
    <script>
        //1.获取元素
        const box = document.querySelector('.box')
        //2.修改文字内容
        box.innerHTML='<strong>盒子内容</strong>'
    </script>
</body>
</html>

网页显示为 :                         

<!-- 
  需求:从数组随机抽取一等奖、二等奖和三等奖,显示到对应的标签里面。
分析:
①:声明数组: const personArr = ['周杰伦', '刘德华', '周星驰', 'Pink老师', '张学友']
②:一等奖:随机生成一个数字(0~数组长度),找到对应数组的名字
③:通过innerText 或者 innerHTML 将名字写入span元素内部
④: 二等奖依次类推
 -->
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>年会抽奖</title>
  <style>
    .wrapper {
      width: 840px;
      height: 420px;
      background: url(./images/bg01.jpg) no-repeat center / cover;
      padding: 100px 250px;
      box-sizing: border-box;
    }
  </style>
</head>

<body>
  <div class="wrapper">
    <strong>传智教育年会抽奖</strong>
    <h1>一等奖:<span id="one">???</span></h1>
    <h3>二等奖:<span id="two">???</span></h3>
    <h5>三等奖:<span id="three">???</span></h5>
  </div>
  <script>
    //1.声明数组
    const personArr = ['周杰伦', '刘德华', '周星驰', 'Pink老师', '张学友']
    for(let i = 0;i<3;i++)
    {
      let arr=['#one','#two','#three']
      const random=Math.floor(Math.random()*personArr.length)
      arr[i]=document.querySelector(arr[i])
      arr[i].innerHTML=personArr[random]
      personArr.splice(random,1)
    }
    
  </script>
</body>

</html>

 网页显示为:

操作元素属性 

操作元素常用属性

可以通过 JS 设置/修改标签元素属性,比如通过 src更换 图片
最常见的属性比如: href、title、src 等

语法:

操作元素样式属性

可以通过 JS 设置/修改标签元素的样式属性。
比如通过 轮播图小圆点自动更换颜色样式
点击按钮可以滚动图片,这是移动的图片的位置 left 等等
学习路径:
1. 通过 style 属性操作CSS
2. 操作类名(className) 操作CSS
3. 通过 classList 操作类控制CSS

1. 通过 style 属性操作CSS

语法:

例:

注意:
1. 修改样式通过 style 属性引出
2. 如果属性有 - 连接符,需要转换为 小驼峰 命名法
3. 赋值的时候,需要的时候不要忘记加 css单位

2. 操作类名(className) 操作CSS

如果修改的样式比较多,直接通过style属性修改比较繁琐,我们可以通过借助于css类名的形式。
语法:
注意:
1. 由于class是关键字, 所以使用className去代替
2. className是使用新值 旧值, 如果需要添加一个类,需要保留之前的类名

3. 通过 classList 操作类控制CSS

为了解决className 容易覆盖以前的类名,我们可以通过classList方式追加和删除类名
语法:

操作表单元素属性

表单很多情况,也需要修改属性,比如点击眼睛,可以看到密码,本质是把表单类型转换为文本框
正常的有属性有取值的 跟其他的标签属性没有任何区别
获取: DOM对象.属性名
设置: DOM对象.属性名 = 新值
表单属性中添加就有效果,移除就没有效果,一律使用布尔值表示 如果为true 代表添加了该属性 如果是false 代表移除了该属性
比如: disabled、checked、selected

自定义属性

标准属性: 标签天生自带的属性 比如class id title等, 可以直接使用点语法操作比如: disabled、checked、 selected
自定义属性:
在html5中推出来了专门的data-自定义属性
在标签上一律以data-开头
在DOM对象上一律以dataset对象方式获取

定时器-间歇函数 

定时器函数介绍

网页中经常会需要一种功能:每隔一段时间需要 自动 执行一段代码,不需要我们手动去触发
例如:网页中的倒计时
要实现这种需求,需要定时器函数

定时器函数基本使用

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

1. 开启定时器

语法:
作用:每隔一段时间调用这个函数
间隔时间单位是毫秒
例如:
注意:
1. 函数名字 不需要加括号
2. 定时器返回的是一个id数字

2. 关闭定时器

语法: 

一般不会刚创建就停止,而是满足一定条件再停止

<!-- 
需求:按钮60秒之后才可以使用
分析:
①:开始先把按钮禁用(disabled 属性)
②:一定要获取元素
③:函数内处理逻辑
    秒数开始减减
    按钮里面的文字跟着一起变化
    如果秒数等于0 停止定时器 里面文字变为 同意 最后 按钮可以点击
 -->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <textarea name="" id="" cols="30" rows="10">
        用户注册协议
        欢迎注册成为京东用户!在您注册过程中,您需要完成我们的注册流程并通过点击同意的形式在线签署以下协议,请您务必仔细阅读、充分理解协议中的条款内容后再点击同意(尤其是以粗体或下划线标识的条款,因为这些条款可能会明确您应履行的义务或对您的权利有所限制)。
        【请您注意】如果您不同意以下协议全部或任何条款约定,请您停止注册。您停止注册后将仅可以浏览我们的商品信息但无法享受我们的产品或服务。如您按照注册流程提示填写信息,阅读并点击同意上述协议且完成全部注册流程后,即表示您已充分阅读、理解并接受协议的全部内容,并表明您同意我们可以依据协议内容来处理您的个人信息,并同意我们将您的订单信息共享给为完成此订单所必须的第三方合作方(详情查看
    </textarea>
    <br>
    <button class="btn" disabled>我已经阅读用户协议(5)</button>
    <script>
        //1.获取元素
        const btn = document.querySelector('.btn')
        //2.倒计时
        let i = 5
        let n = setInterval(function(){
            i--
            btn.innerHTML=`我已经阅读用户协议(${i})`
            if(i===0)
            {
                clearInterval(n)
                btn.disabled=false
                btn.innerHTML='同意'
            }
        },1000)
    </script>

</body>

</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/706580.html

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

相关文章

Powerbuilder项目文件太多,对象继承太多导致编译需要几个小时的解决方案

Powerbuilder项目文件太多&#xff0c;对象继承太多导致编译需要几个小时的解决方案&#xff1a; 项目文件太多&#xff0c;很多pbl是一个相对独立的库算法&#xff0c;而且还夹杂着pfc的一些老库。这些库的特点就是继承和封装比较好&#xff0c;但是导致编译速度特慢。我遇到…

全局异常处理

使用 ControllerAdvice 声明全局异常处理类使用ExceptionHandler(异常类.class) 指定哪一个异常处理 先会抛出指定异常&#xff0c;没有指定异常的情况下抛出全局异常。 3. 自定义异常 3-1. 自定义异常类&#xff0c;需要继承 extends RuntimeException 3-2. 在代码异常处声…

《JavaScript设计模式与开发实践》一篇文章带你读懂

《JavaScript设计模式与开发实践》是由曾探所著的一本经典技术书籍。该书详细介绍了JavaScript中常用的设计模式&#xff0c;并结合实际项目开发经验给出了实践示例和最佳实践建议。这本书首先介绍了设计模式的基本概念和作用&#xff0c;以及为什么要在JavaScript中使用设计模…

Leetcode链表刷题集合

链表 对链表类算法题做个小集合&#xff0c;题解基本来LeetCode题解与labuladong的算法网站&#xff0c;自己加以理解写注释。代码都是测试跑通的。 下面使用的链表结构&#xff1a; class ListNode{public ListNode next;public int val;public ListNode(ListNode next, in…

threejs光源

个人博客地址: https://cxx001.gitee.io 前言 没有光源&#xff0c;渲染场景将不可见。threejs中已经帮我们实现了大量的光源&#xff0c;我们可以直接使用&#xff0c;主要分为两类&#xff1a;基础光源和特殊光源&#xff0c;下面将依次详细介绍。 基础光源 1. THREE.Ambi…

单向/双向V2G环境下分布式电源与电动汽车充电站联合配置方法(matlab代码)

目录 1 主要内容 目标函数 电动汽车负荷建模 算例系统图 程序亮点 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序复现博士文章《互动环境下分布式电源与电动汽车充电站的优化配置方法研究》第五章《单向/双向V2G环境下分布式电源与电动汽车充电站联合配置方法》…

13 | 代码模型(上):如何使用DDD设计微服务代码模型?

目录 DDD 分层架构与微服务代码模型 微服务代码模型 微服务一级目录结构 各层目录结构 1. 用户接口层 2. 应用层 3. 领域层 4. 基础层 代码模型总目录结构 总结 上一篇文章中完成了领域模型的设计&#xff0c;接下来我们就要开始微服务的设计和落地了。那微服务落地时…

第十七章、Spring的事务处理

1.什么是事务&#xff1f; 保证业务操作完整性的一种数据库机制事务的特点&#xff1a;ACID 原子性 一致性 隔离性 持久性2.如何控制事务 JDBC:Connection.setAutoCommit(false);事务开启Connection.commit();Connection.rollback(); Mybatis:Mybatis自动开启事务sqlSession(…

Revit中桩的绘制及CAD生成桩

一、Revit如何用体量来绘制一个桩基础 如何用体量来绘制一个桩基础呢?这里采用BIM等级考试一级第十期的第三题来教大家 新建体量样板&#xff0c;选择公制体量来绘制 按题目要求先复制4个参照标高平面&#xff0c;同时按住ctrlshift拖动标高再修改高度就可以 开始绘制基础的最…

Axure教程——模糊搜索(中继器 )

本文介绍的是用Axure中的中继器制作模糊搜索 效果 预览地址&#xff1a;https://f16g7e.axshare.com 功能 输入关键字&#xff0c;可查询出相应的结果 制作 一、需要元件 矩形、中继器 二、制作过程 1、搜索框 拖入一个矩形元件&#xff0c;设置大小为21530,在矩形中加入一个…

多元分类预测 | Matlab麻雀算法(SSA)优化混合核极限学习机(HKELM)分类预测,多特征输入模型,SSA-HKELM分类预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元分类预测 | Matlab麻雀算法(SSA)优化混合核极限学习机(HKELM)分类预测,多特征输入模型,SSA-HKELM分类预测 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matlab…

内网IP怎么用域名让外网访问,域名动态解析和静态区别?

域名解析是将域名与公网IP进行对应关系&#xff0c;实现访问域名即访问到对应IP应用的方式。域名解析分静态域名解析和动态域名解析的区别&#xff0c;它们的区别在哪&#xff1f;内网IP服务器怎么用域名让外网连接访问&#xff1f;这些都是需要我们有所了解掌握的。 这里不但…

ShardingSphere 5.3 整合 Seata 分布式事务 | Spring Cloud 61

一、前言 通过以下系列章节&#xff1a; docker-compose 实现Seata Server高可用部署 | Spring Cloud 51 Seata AT 模式理论学习、事务隔离及部分源码解析 | Spring Cloud 52 Spring Boot集成Seata利用AT模式分布式事务示例 | Spring Cloud 53 Seata XA 模式理论学习、使用…

word去掉页眉横线方法

最简单的方法&#xff1a;双击页眉全选文字&#xff0c;然后点清除样式即可。 清除样式的图标&#xff1a; 参考的是下面这篇文章&#xff0c;介绍得很详细&#xff0c;讲了三种方法&#xff0c;如果上面的方法行不通可以试试其他的方法&#xff1a; Word页眉横线怎么去掉

2023年第二届能源与环境工程国际会议(CFEEE 2023)

会议简介 Brief Introduction 2023年第二届能源与环境工程国际会议(CFEEE 2023) 会议时间&#xff1a;2023年9月1日-3日 召开地点&#xff1a;中国三亚 大会官网&#xff1a;CFEEE 2023-2023 International Conference on Frontiers of Energy and Environment Engineering 由I…

编译linux内核(一)

关于linux启动流程 1. 第一阶段&#xff1a;BIOS1.1 硬件自检1.2 启动顺序 2. 第二阶段&#xff1a;主引导记录2.1 主引导记录的结构2.2 分区表 3. 第三阶段&#xff1a;硬盘启动3.1 情况A&#xff1a;卷引导记录3.2 情况B&#xff1a;扩展分区和逻辑分区3.3 情况C&#xff1a;…

chatgpt赋能python:免费的Python编程软件:开发者必备工具!

免费的Python编程软件&#xff1a;开发者必备工具&#xff01; Python是一门广受欢迎的编程语言&#xff0c;它已经成为了很多公司和开发者的首选语言。Python的出现改变了编程的方式&#xff0c;它具有简单、易懂、易读、易写、易拓展等特点&#xff0c;因此成为了很多新手入…

使用 Pod 网络策略保护 Kubernetes 集群流量

Kubernetes Pod 默认可以自由地相互通信。当您的集群用于多个应用程序或团队时,这会带来安全风险。一个 Pod 中的错误行为或恶意访问可能会将流量引导至集群中的其他 Pod。 本文将教您如何通过设置网络策略来避免这种情况。这些规则可让您在 IP 地址级别( OSI第 3 层或第 4 …

二进制表示整数及运算

现代计算机存储和处理信息以二值信号表示&#xff0c;二值信号能够很容易地被表示、存储和传输。例如穿孔卡片上有洞或无洞、电压的高低或顺时针、及顺时针或逆时针的磁场。 图 二进制与电压的关系 1 二进制 大多数计算机使用8位作为一个字节&#xff0c;是最小的可寻址的内存…

【vue】vue高性能虚拟滚动列表【vue2和vue3版组件封装】

项目场景&#xff1a; 当前页显示10w多条数据&#xff0c;不做分页的情况进行渲染。加载和渲染页面会非常慢&#xff0c;滚动也非常卡顿 解决方案&#xff1a; 之渲染可视窗口的列表&#xff0c;其他列表不进行渲染。通过修改偏移量高度进行滚动列表。 vue2版本 virtualLi…