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

news2024/12/26 20:51:51

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标签对象.src
        const 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.coloradmin.cn/o/1498425.html

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

相关文章

Java定时调度:Timer类和TimerTask类

Java提供了多种方式来执行定时任务&#xff0c;其中使用Timer类和TimerTask类是一种简单而有效的方法。这篇教程将介绍如何使用Java的Timer类和TimerTask类来实现定时调度。 1. Timer类 Timer类用于安排指定的任务按指定的时间执行。它可以执行一次性任务&#xff0c;也可以按…

详解事件循环机制

浏览器最主要的进程 &#xff1a; 渲染主线程 如何理解JS的异步 任务没有优先级&#xff0c;但消息队列有优先级 阐述一下JS的事件循环

25考研资料PDF汇总

资料V馊public号ZL研知己 V馊public号ZL研知己 25考研资料PDF汇总

008-跨域

跨域 什么是跨域&#xff1f;非同源限制跨域解决方案CORSJSONP服务器进行第三方代理webscoketwindow.postMessage 什么是跨域&#xff1f; 同源策略&#xff1a;协议相同、域名相同、端口号相同 的两个页面被认为是同源。 由一个页面的 js 访问不同源的页面内容&#xff0c;被…

电磁兼容EMC:单、双面板的均匀传输线

目录 1 传输线 2 均匀传输线 3 特征阻抗 4 应用案例 为何要讲单、双面板的均匀传输线&#xff1f;因为均匀传输线能保证信号质量&#xff0c;减少EMC问题&#xff0c;而单双面板没有完整的地和电源平面&#xff0c;很难实现均匀传输线的布线&#xff0c;所以更需要知道如何在…

Java_排序

文章目录 一、排序的概念二、常见的排序算法三、常见排序算法的实现1.插入排序1、基本思想2、直接插入排序3、希尔排序&#xff08;缩小增量排序&#xff09; 2.选择排序1、基本思想2、直接选择排序2、堆排序 3.交换排序1、冒泡排序2、快速排序3、快速排序优化4、快速排序非递归…

day2:keil5基础2

思维导图 使用ADC采样光敏电阻数值&#xff0c;如何根据这个数值调节LED灯亮度。2.总结DMA空闲中断接收数据的使用方法 while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */adc_value HAL_ADC_GetValue(&hadc);TIM3->CCR3 adc_value * 999 / 4095;printf(&q…

Stable Diffusion 模型分享:DucHaiten-AIart-SDXL(动漫、3D、逼真)

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 这是一个丰富多彩的 SDXL 模型&#xff0c;可以绘制动漫、3D、科幻、真实等类型的图片。 …

第 5 章 ROS常用组件动态坐标变换(自学二刷笔记)

5.1.3 动态坐标变换 所谓动态坐标变换&#xff0c;是指两个坐标系之间的相对位置是变化的。 需求描述: 启动 turtlesim_node&#xff0c;该节点中窗体有一个世界坐标系(左下角为坐标系原点)&#xff0c;乌龟是另一个坐标系&#xff0c;键盘控制乌龟运动&#xff0c;将两个坐…

请说明Vue中的异步组件加载

Vue中的异步组件加载是指当页面需要渲染某个组件时&#xff0c;可以在需要时再去加载这个组件&#xff0c;而不是在页面初始化的时候就将所有组件一次性加载进来。这种方式能够有效降低页面的初始加载时间&#xff0c;提升用户体验。 在Vue中&#xff0c;我们可以使用import函…

idea Gradle 控制台中文乱码

如下图所示&#xff0c;idea 中的 Gradle 控制台中文乱码&#xff1a; 解决方法&#xff0c;如下图所示&#xff1a; 注意&#xff1a;如果你的 idea 使用 crack 等方式破解了&#xff0c;那么你可能需要在文件 crack-2023\jetbra\vmoptions\idea.vmoptions 中进行配置&#xf…

每日五道java面试题之springMVC篇(一)

目录&#xff1a; 第一题. 什么是Spring MVC&#xff1f;简单介绍下你对Spring MVC的理解&#xff1f;第二题. Spring MVC的优点第三题. Spring MVC的主要组件&#xff1f;第四题. 什么是DispatcherServlet?第五题. 什么是Spring MVC框架的控制器&#xff1f; 第一题. 什么是S…

基于51单片机的车辆出入光电传感管理系统设计

目 录 摘 要 I Abstract II 引 言 1 第1章 系统总体方案设计 3 1.1 整体方案设计 3 1.1.1 控制系统的选择 3 1.1.2 系统框图 4 1.2 最小系统模块 4 1.2.1 STC89C51简介 4 1.2.2 最小系统电路 6 第2章 系统硬件设计 8 2.1 单片机的选择 8 2.2 显示方案的选择 8 2.3 红外检测模块…

VisionPro 判断圆是不是无限接近圆或存在缺陷

项目上可能需要判断圆是否是无限接近圆或者判断圆边缘是否存在缺陷等。 第一种方法&#xff1a;找圆工具和点到点的距离计算圆边缘上的点到圆心距离的最大值和最小值的差值。 #region namespace imports using System; using System.Collections; using System.Drawing; usin…

【论文精读】大语言模型融合知识图谱的问答系统研究

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

安装sqlserver2022最新版只能使用.\SQLEXPRESS登录数据库怎么修改成.

.\SQLEXPRESS “服务器名称 localhost\SQLEXPRESS”中的 “SQLEXPRESS”就是数据库的实例名称/数据库名/服务器名&#xff0c; “localhost”即登录本计算机安装的数据库 安装sqlserver2022最新版只能使用.\SQLEXPRESS登录数据库怎么修改成. 2、查看SQL Server数据库的实例名…

Myqsort:基于冒泡排序算法的C语言实现

我们将详细介绍一个基于冒泡排序算法的自定义排序函数——Mysqrt。该函数通过使用用户提供的比较函数进行元素间的比较&#xff0c;并结合swap交换函数对任意类型的数据进行排序。下面是对代码的逐行解析。 逻辑导图 代码实现 // 头文件 #include<stdio.h>// 定义比较函…

RK3568平台 USB数据包的收发格式

一.USB硬件拓扑结构 compound device &#xff1a;多个设备组合起来&#xff0c;通过HUB跟Host相连composite device &#xff1a;一个物理设备有多个逻辑设备(multiple interfaces) 在软件开发过程中&#xff0c;我们可以忽略Hub的存在&#xff0c;硬件拓扑图简化如下&#x…

事务失效的八种情况!!!!

一、非publi修饰的方法。 /*** 私有方法上的注解&#xff0c;不生效&#xff08;因私有方法Spring扫描不到该方法&#xff0c;所以无法生成代理&#xff09;*/ Transactional private boolean test() {//test code }二、类内部访问。 类内部非直接访问带注解标记的方法 B&…

php:下拉列表查询(静态数据+数据库数据)

一、在php中嵌套 效果 1、从php中嵌套html语句 下拉列表的显示 echo <div class"text-nav-1 required "><div> . _(在职状态) . :</div> <select name"work_status">; // 定义选项数组 $options [all > _(全部),inwork &g…