Web APIs 第一天( Dom获取属性操作)

news2024/11/28 16:34:58

Web API 基本认知

变量声明

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

 const 声明的值不能更改,而且const声明变量的时候需要里面进行初始化
 但是对于引用数据类型,const声明的变量,里面存的不是 值,不是值,不是值,是 地址(数组,对象)

总结:

以后声明变量我们优先使用哪个?

const

 有了变量先给const,如果发现它后面是要被修改的,再改为let

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

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

建议数组和对象使用 const 来声明

3. 什么时候使用let声明变量?

 如果基本数据类型的值或者引用类型的地址发生变化的时候,需要用let

比如 一个变量进行加减运算,比如 for循环中的 i++

作用和分类

作用: 就是使用 JS 去操作 html 和浏览器

分类:DOM (文档对象模型)、BOM(浏览器对象模型)

什么是DOM

DOM(Document Object Model——文档对象模型)是用来呈现以及与任意 HTML 或 XML文档交互的API

 白话文:DOM是浏览器提供的一套专门用来 操作网页内容 的功能

DOM作用 :开发网页内容特效和实现用户交互

DOM树

DOM树是什么

将 HTML 文档以树状结构直观的表现出来,我们称之为文档树或 DOM 树

描述网页内容关系的名词

作用:文档树直观的体现了标签与标签之间的关系

DOM对象(重要)

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

所有的标签属性都可以在这个对象上面找到

修改这个对象的属性会自动映射到标签身上

DOM的核心思想

把网页内容当做对象来处理

document 对象

是 DOM 里提供的一个对象

所以它提供的属性和方法都是用来访问和操作网页内容的

网页所有内容都在document里面

获取DOM对象

根据css选择器获取DOM元素

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

语法:

document.querySelector(`css选择器`)

参数:包含一个或多个的字符串

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

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

得到的是一个伪数组:

有长度有索引号的数组

但是没有 pop() push() 等数组方法 想要得到里面的每一个对象,则需要遍历(for)的方式获得。

操作元素内容

1. 元素innerText 属性

将文本内容添加/更新到任意标签位置

显示纯文本,不解析标签

2. 元素.innerHTML 属性

将文本内容添加/更新到任意标签位置

会解析标签,多标签建议使用模板字符

操作元素常用属性

还可以通过 JS 设置/修改标签元素属性,比如通过 src更换 图片

最常见的属性比如: href、title、src 等

语法:

<script>
  // 1. 获取 img 对应的 DOM 元素
  const pic = document.querySelector('.pic')
	// 2. 修改属性
  pic.src = './images/lion.webp'
  pic.width = 400;
  pic.alt = '图片不见了...'
</script>

操作元素样式属性

通过 style 属性操作CSS

语法:

  <!DOCTYPE html>
  <html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
      body{
      background: url(./图片/9.png) no-repeat  top center/
      cover;
      }
      </style>
  </head>
<body>
  <script>
    let m = Math.floor(Math.random()*10)
    document.body.style.backgroundImage=`url(./图片/${m}.jpg)`
  </script>
  </body>
  </html> 

操作类名操作CSS

元素.className = `active`

注意:

1.由于class为关键字,所以使用claaName去代替。

2.className是使用新值换旧值,所以需要添加一个类,需要保留之前的类名

通过claalist操作类控制css

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

语法:

元素.claaList.add(`类名`)
元素.claaList.remove(`类名`)
元素.claaList.toggle(`类名`)

操作表单元素属性

获取:DOM对象.属性名

设置:DOM对象.属性名=新值

表单.value = `用户名`
表单.type = `password`

表单属性中添加就有效果,移除就没有效果,一律使用布尔值表示 如果为true 代表添加了该属性 如果是false 代 表移除了该属性

l比如: disabled、checked、selected

自定义属性

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

自定义属性:  在html5中推出来了专门的data-自定义属性 

在标签上一律以data-开头

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

<!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>Document</title>

</head>

<body>
   <div data-id="1"> 自定义属性 </div>
    <script>
        // 1. 获取元素
        let div = document.querySelector('div')
        // 2. 获取自定义属性值
         console.log(div.dataset.id)
      
    </script>
</body>

</html>

定时器--间歇函数

作用:每隔一段时间调用

这个函数间隔时间单位是毫秒

关闭定时器

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

用户协议的小案例

<!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">我已阅读用户协议60</button>
  <script>
    const btn = document.querySelector(`.btn`)
    let i = 5
    let n = setInterval(function(){
      i--
       btn.innerHTML = `我已阅读用户协议${i}`
      if (i == 0) {
        clearInterval(n)
        btn.ariaDisabled =false
        btn.innerHTML = `同意`
      }
    },1000)
   

    
  </script>
</body>

</html>

最后说一句话:

“我们都在阴沟里,但仍有人仰望星空。” 这句话教会我们,即使生活中充满了困境与挫折,也要保持对美好未来的憧憬。

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

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

相关文章

html5的一些新特性

最近总是碰到html5特性这种问题,虽然简单,但是也是自己平时不关注的东西,趁今天时间充裕,那就来总结一下吧 HTML5新特性包括新增了部分标签、表单元素增强、支持视频和音频、支持canvas绘图、提供web存储、提供地理定位功能、提供web workers机制、提供web socket协议、提供CS…

NPDP|传统行业产品经理如何跨越鸿沟,从用户角度审视产品

随着科技的飞速发展和互联网的普及&#xff0c;产品经理的角色已经从单纯的产品规划者逐渐转变为全方位的用户体验设计者。对于传统行业的产品经理来说&#xff0c;这是一个挑战与机遇并存的时代。他们不仅要面对激烈的市场竞争&#xff0c;还要学会如何跨越与新兴科技行业之间…

《建筑抗震设计规程》DB62/T 3055-2020下载

本规程适用于抗震设防分类为乙类、丙类&#xff0c;抗震设防烈度为6度(0.05g)、7度(0.10g、0.15g)、8度(020g、030g)、9度(0.40g)的多高层钢筋混凝土结构及钢-混凝土混合结构、中等跨度钢屋盖结构、门式刚架钢结构、多低层砖砌体结构房屋建筑的抗震设计。 关于甘肃省地方标准《…

pycharm虚拟环境

File->setting->project->Python interpreter 路径必须写全

[C++核心编程-04]----C++类和对象之封装

目录 引言 正文 01-类和对象简介 02-封装简介 03-封装的意义 04-封装案例之设计学生类 05-封装的权限控制 06-struct和class的区别 07-成员属性设置为私有 08-封装案例1-设计立方体 09-封装案例2-判断点和圆的关系 总结 引言 在C中&#xff0c;…

NVIDIA TensorRT Model Optimizer

NVIDIA TensorRT Model Optimizer NVIDIA TensorRT 模型优化器&#xff08;ModelOpt&#xff09;是一个用于优化 AI 模型的库&#xff0c;它通过量化和稀疏性技术减小模型大小并加速推理&#xff0c;同时保持模型性能。ModelOpt 支持多种量化格式和算法&#xff0c;包括 FP8、…

深度学习知识点全面总结

ChatGPT 深度学习是一种使用神经网络来模拟人脑处理数据和创建模式的机器学习方法。下面是深度学习的一些主要知识点的总结&#xff1a; 1. 神经网络基础&#xff1a; - 神经元&#xff1a;基本的计算单元&#xff0c;模拟人脑神经元。 - 激活函数&#xff1a;用于增加神…

力扣HOT100 - 763. 划分字母区间

解题思路&#xff1a; class Solution {public List<Integer> partitionLabels(String s) {int[] last new int[26];int len s.length();for (int i 0; i < len; i) {last[s.charAt(i) - a] i;//记录字母最远的下标}List<Integer> partition new ArrayList…

大数据在IT行业的应用与发展趋势及IT行业的现状与未来

大数据在IT行业中的应用、发展趋势及IT行业的现状与未来 一、引言 随着科技的飞速发展&#xff0c;大数据已经成为IT行业的重要驱动力。从数据收集、存储、处理到分析&#xff0c;大数据技术为各行各业带来了深远的影响。本文将详细探讨大数据在IT行业中的应用、发展趋势&#…

做抖店如何提高与达人合作的几率?有效筛选+有效推品

我是王路飞。 总是有很多新手商家&#xff0c;找我吐槽&#xff0c;抖音上的达人特别不好找&#xff0c;好不容易加上了&#xff0c;要么是发消息不回复&#xff0c;要么是寄样后就没下文了。 虽然一直都说找达人带货玩法比较简单&#xff0c;但也离不开电商的基本逻辑&#…

【k8s多集群管理平台开发实践】九、client-go实现nginx-ingress读取列表、创建ingress、读取更新yaml配置

文章目录 简介 一.k8s的ingress列表1.1.controllers控制器代码1.2.models模型代码 二.创建ingress2.1.controllers控制器代码2.2.models模分代码 三.读取和更新ingress的yaml配置3.1.controllers控制器代码3.2.models模型代码 四.路由设置4.1.路由设置 五.前端代码5.1.列表部分…

低血压怎么办?低血压患者应该如何调理?

点击文末领取揿针的视频教程跟直播讲解 低血压在生活中也是一种常见的问题&#xff0c;低血压的朋友常有头晕眼黑、冒冷汗等症状&#xff0c;对工作学习产生了一定的影响。 什么是低血压呢&#xff1f; 低血压是指体循环动脉压力低于正常的状态。即血压低于正常水平。 ​一般…

LearnOpenGL(十四)之模型加载

Model类的结构&#xff1a; class Model {public:/* 函数 */Model(char *path){loadModel(path);}void Draw(Shader shader); private:/* 模型数据 */vector<Mesh> meshes;string directory;/* 函数 */void loadModel(string path);void processNode(aiNode …

初识指针(5)<C语言>

前言 在前几篇文章中&#xff0c;已经介绍了指针一些基本概念、用途和一些不同类型的指针&#xff0c;下文将介绍某些指针类型的运用。本文主要介绍函数指针数组、转移表&#xff08;函数指针的用途&#xff09;、回调函数、qsort使用举例等。 函数指针数组 函数指针数组即每个…

京东h5st4.7逆向分析

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;不提供完整代码&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 本文章未…

信息量、熵、KL散度、交叉熵概念理解

信息量、熵、KL散度、交叉熵概念理解 (1) 信息量 信息量是对事件的不确定性的度量。 假设我们听到了两件事&#xff0c;分别如下&#xff1a;事件A&#xff1a;巴西队进入了世界杯决赛圈。 事件B&#xff1a;中国队进入了世界杯决赛圈。仅凭直觉来说&#xff0c;显而易见事件…

SpringAMQP-消息转换器

这边发送消息接收消息默认是jdk的序列化方式&#xff0c;发送到服务器是以字节码的形式&#xff0c;我们看不懂也很占内存&#xff0c;所以我们要手动设置一下 我这边设置成json的序列化方式&#xff0c;注意发送方和接收方的序列化方式要保持一致 不然回报错。 引入依赖&#…

STM32_HAL_TIM_1介绍

1.F1的定时器类型&#xff08;高的拥有低级的全部功能&#xff09; 高级定时器&#xff08;TIM1和TIM8&#xff09;&#xff1a; 16位自动重装载计数器。支持多种工作模式&#xff0c;包括中心对齐模式、边沿对齐模式等。可以产生7个独立的通道&#xff0c;用于PWM、输出比较、…

Cosmo Bunny Girl

可爱的宇宙兔女郎的3D模型。用额外的骨骼装配到Humanoid上,Apple混合了形状。完全模块化,包括不带衣服的身体。 技术细节 内置,包括URP和HDRP PDF。还包括关于如何启用URP和HDRP的说明。 LOD 0:面:40076,tris 76694,verts 44783 装配了Humanoid。添加到Humanoid中的其他…

测试用例编写规范

1.1目的 统一测试用例编写的规范&#xff0c;为测试设计人员提供测试用例编写的指导&#xff0c;提高编写的测试用例的可读性&#xff0c;可执行性、合理性。为测试执行人员更好执行测试&#xff0c;提高测试效率&#xff0c;最终提高公司整个产品的质量。 1.2使用范围 适用…