1.BOM-获取元素(获取元素、修改属性)

web Api基本认知

作用:通过JS去操作html页面和浏览器(实现浏览器中的某些功能)
分类:
DOM(网页):Document Object Model(文档对象模型)
BOM(浏览器):Borwser Object Model(浏览器对象模型)

DOM

DOM树

将网页中标签的关系以树状结构表现出来
在这里插入图片描述

DOM对象

浏览器根据html标签生成的JS对象
a)所有的标签属性都可以在这个对象上面找到
b)修改这个对象的属性会自动映射到标签身上
DOM核心思想:把网页内容当做对象来处理

document对象

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

获取DOM对象

querySelector(‘选择器’)

    <div><ul><li></li></ul></div><script>//获取页面中的标签语法://a) document.querySelector('CSS选择器')  //注意,参数就是一个字符串,字符串就是各种css选择器let res = document.querySelector('div')// b)有返回值:返回的结果就是当前标签(标签对象)console.log(res)let res2 = document.querySelector(' div ul li') //通过后代选择器获取了li标签console.log(res2)</script>

在这里插入图片描述

querySelectorAll
    <div>文字1</div><div>文字2</div><div>文字3</div><div>文字4</div><script>let res = document.querySelector('div')   //querySelector只能获取满足条件的第一个标签console.log(res)//document.querySelectorAll('css选择器')  //可以获取到所有满足条件的标签  #id .class是css选择器let res2 = document.querySelectorAll('div')  //得到的是一个伪数组(伪数组也是一个数组,但是不能使用数组方法)console.log(res2) //数组中每一个值都是标签对象console.log(res2[1])</script>

在这里插入图片描述
如何界定返回的结果是伪数组呢?如果返回的结果没有Array就是伪数组
伪数组不能使用数组中的方法,但是伪数组依然可以使用for循环遍历,因为for循环不是数组中的方法

其他获取DOM元素的方法(了解)
   <div id="one" class="test1">文字1</div><div id="two" class="test2">文字2</div><div id="three">文字3</div><div class="test1">文字4</div><script>//  1.其他方式获取标签// a)通过标签的id获取标签对象// 总结:因为标签的id唯一,所以通过getElementById()只能获取一个标签const div = document.getElementById('one')console.log(div)//b)通过标签的名字获取标签对象// document.getElementsByTagName('标签名')console.log(document.getElementsByTagName('div'))  //得到一个伪数组// c)通过标签类名获取标签// document.getElementsByClassName('类名')//类名前面不能加点,加点就变成了类选择器let res = document.getElementsByClassName('test1')console.log(res)</script>

在这里插入图片描述

操作元素内容

获取标签中的内容

  <div id="one" class="test1"><p>文字1</p></div><div id="two" class="test2">文字2</div><div id="three">文字3</div><div class="test1">文字4</div><div id="five"></div><script>//获取标签中的内容// 赋值语法:// DOM标签对象.innerHTML=值// DOM标签对象.innerText=值//获取值语法:获取标签中的内容// DOM标签对象.innerHTML;// DOM标签对象.innerText;const div = document.querySelector('#one')//   二者的区别://a) 如果标签内只有纯粹的文字,则innerHTML和innerText没有任何区别// b)如果标签中有文字+html标签,则innerHTML既可以获取文字也可以获取对应的HTML标签console.log(div.innerHTML)console.log(div.innerText)//给标签设置文字内容,会覆盖掉标签内原来的内容div.innerHTML = '呵呵呵呵'console.log(div.innerHTML)  //非纯文本标签也覆盖掉了div.innerHTML = '<h1>呵呵呵呵</h1>'  //innerHTML中的标签页会被渲染上去,而innerText的标签会被当成纯文本渲染</script>

在这里插入图片描述

操作元素属性

操作img的src属性

    <img src="../image/1.jpg" alt=""><script>// 操作图片标签中的src属性// a)获取图片的src属性// 语法:DOM标签对象.srcconst img = document.querySelector('img')let res = img.src //获得的是绝对路径console.log(res)// b)给图片标签设置src属性// 语法:DOM标签对象.src=值;img.src = '../image/2.jpg'

操作标签的样式属性

    <div></div><script>//操作标签的样式属性//1.行内式   //本质上通过操作标签的style属性实现//2.外联式  //本质都是通过选择器实现的//3.内嵌式  //本质都是通过选择器实现的//通过操作标签的style属性实现给标签设置样式的//语法:DOM标签对象.style.css属性=值let div = document.querySelector('div')div.style.backgroundColor = 'red'div.style.border = '2px solid blue'//通过行内样式一次可以给标签加若干标签属性,单独设置即可//style也是一个对象。那么style中有哪些属性我们才可以用 。可以通过console.log(div.style)查阅</script>

在这里插入图片描述

操作标签的类样式

<!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>div {height: 200px;width: 200px;background-color: red;border: 5px solid blue;border-radius: 50%;}</style>
</head><body><div></div><script>// 1.操作标签的类样式// 语法:DOM标签对象.className='类名'// 代码演示// 1.定义一个样式// 2.获取div标签let div = document.querySelector('div')// 3.给div标签设置类样式div.className = 'box'// 通过className操作标签样式总结// a)如何给标签添加多个类名?只要在类命中加上空格       div.className = 'box  bd  w'//b)通过className操作标签类名的时候,会覆盖标签原来的类名//c)如果不希望覆盖原来的类名,将原来的类名再次添加//d)className设置的值必须是类名,不能加点//操作类样式终级写法(推荐写法)://添加类名:DOM标签对象.classList.add('类名');//不会覆盖原来的类名//删除类名:DOM标签对象.classList.remove('类名')//切换类名:DOM标签对象.classList.toggle('类名')//类似开关,如果没有点击加上,如果有该类名,点击删除//判断是否包含类名:DOM标签对象.classList.contains('类名')</script>
</body></html>

在这里插入图片描述

定时器-间歇函数

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字孪生10个技术栈:数据处理的六步骤,以获得可靠数据。

一、什么是数据处理 在数字孪生中&#xff0c;数据处理是指对采集到的实时或历史数据进行整理、清洗、分析和转化的过程。数据处理是数字孪生的基础&#xff0c;它将原始数据转化为有意义的信息&#xff0c;用于模型构建、仿真和决策支持。 数据处理是为了提高数据质量、整合数…

Frida-Hook-Native层操作大全

前期准备 使用 jadx 进行逆向工程的基础知识。能够理解 Java 代码。能够编写简短的 JavaScript 代码片段。熟悉 adb。已 root 的设备。对 x86/ARM64 汇编和逆向工程有基础了解。 1、Hook Native层中调用的函数并且读取传入的参数 对于Native层的函数Hook&#xff0c;我们使用…

计算阶梯数 Python

题目描述 爱因斯坦曾出过这样一道有趣的数学题&#xff1a; 有一个长阶梯&#xff0c; 若每步上2阶&#xff0c;最后剩1阶&#xff1b; 若每步上3阶&#xff0c;最后剩2阶&#xff1b; 若每步上5阶&#xff0c;最后剩4阶&#xff1b; 若每步上6阶&#xff0c;最后剩5阶&#xf…

MES+APS难度地狱级,搞定它就是劫后余生呀。

一、什么是MES和APS MES&#xff08;Manufacturing Execution System&#xff09;和APS&#xff08;Advanced Planning and Scheduling&#xff09;是两种在制造业中常用的软件系统&#xff0c;用于优化生产过程和提高生产效率。 MES是一种用于管理和监控制造过程的系统。它与…

九:多播和广播

1 多播 &emsp 多播(Multicast )方式的数据传输是基于UDP完成的。 因此&#xff0c;与UDP服务器端/客户端的实现方式非常接近。 区别在于&#xff0c; UDP数据传输以单一目标进行&#xff0c;而多播数据同时传递到加入(注册)特定组的大量主机。 换言之&#xff0c;采用多播…

嵌入式驱动学习第二周——Linux休眠唤醒

前言 这篇博客来聊一聊Linux系统的休眠与唤醒。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程&#xff0c;未来预计四个月将高强度更新本专栏&#xff0c;喜欢的可以关注本博主并订阅本专栏&#xff0c;一起讨论一起学习。现在关注就是老粉啦&#xff01; 目录 前言1. …

Truenas入门级教程

Truenas入门教程 前言&#xff1a;系统相关配置 采用I3 4160&#xff0c;采用了2块500G的硬盘&#xff0c;内存为8G&#xff0c;两个网卡只用了其中一个&#xff0c;系统安装的是core版本 硬件采用DELL3020MT机箱&#xff0c;自带3个SATA网口&#xff0c;后期网口不够&#…

-bash: unzip: 未找到命令的解决方案

遇到 -bash: unzip: 未找到命令 这样的错误信息&#xff0c;表示你的系统中没有安装 unzip 工具。unzip 是一个常用的解压工具&#xff0c;用于解压缩 .zip 文件。你可以通过系统的包管理器安装它。 根据你使用的 Linux 发行版&#xff0c;安装 unzip 的命令会有所不同。下面是…

C# SwinV2 Stable Diffusion 提示词反推 Onnx Demo

目录 介绍 效果 模型信息 项目 代码 下载 C# SwinV2 Stable Diffusion 提示词反推 Onnx Demo 介绍 模型出处github地址&#xff1a;https://github.com/SmilingWolf/SW-CV-ModelZoo 模型下载地址&#xff1a;https://huggingface.co/SmilingWolf/wd-v1-4-swinv2-tagg…

自动化测试之web自动化(Selenium)

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

飞桨AI框架安装和使用示例

飞桨AI框架安装和使用示例 飞桨PaddlePaddle是非常流行的国产AI框架&#xff0c;让我们一起来动手实践吧&#xff01; 安装 飞桨安装参考页面&#xff1a;https://www.paddlepaddle.org.cn/install/quick?docurl/documentation/docs/zh/install/pip/linux-pip.html 在这个安…

网络工程师笔记10 ( RIP / OSPF协议 )

RIP 学习路由信息的时候需要配认证 RIP规定超过15跳认定网络不可达 链路状态路由协议-OSPF 1. 产生lsa 2. 生成LSDB数据库 3. 进行spf算法&#xff0c;生成最有最短路径 4. 得出路由表