前端学习-操作元素属性(二十三)


前言

假期快乐,大家加油


操作元素属性

操作元素常用属性

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

比如:href、title、src等语法:对象.属性 = 值

const pic = document.querySelector('img');pic.src = './images/b0.jpg'pic.title='刘德华黑马演唱会'

案例:网站图片的刷新

<body><img src="./images/1.webp" alt=""<script>//取到N~M 的随机整数function getRandom(N,M){return Math.floor(Math.random()*(M-N+1))+NI11.获取图片对象const img = document.querySelector('img')/12.随机得到序号const random=getRandom(1,6)113.更换路径img.src=./images/${random}.webp</script></body>

操作元素样式属性

还可以通过 JS 设置/修改标签元素的样式属性。

比如通过 轮播图小圆点自动更换颜色样式点击按钮可以滚动图片,这是移动的图片的位置left等等

通过 style 属性操作CSS

语法

对象.style.样式属性= 值

<!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>​ .box {​ width: 200px;​ height: 200px;​ background-color: aqua;​ }</style></head><body><div class="box"></div><script>​ const box = document.querySelector('.box');​ box.style.width = '300px';​ box.style.height = '300px';​ box.style.backgroundColor = 'red';​ box.style.border = '2px solid black'</script></body></html>

操作类名(className)操作CSS

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

简单来说就是使用一个新盒子的数据去更改原先的盒子

示例:

<!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>​ .box {​ width: 200px;​ height: 200px;​ background-color: aqua;​ }​ .boxone {​ width: 300px;​ height: 300px;​ background-color: red;​ border: 2px solid black;​ margin: 10px;​ }</style></head><body><div class="box"></div><script>​ const box = document.querySelector('.box');​ div.className = 'boxone';</script></body></html>

通过 classList 操作类控制CSS

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

语法格式

// 追加一个类 类名不加点,并且是字符串元素.classList.add('类名')// 删除一个类 类名不加点,并且是字符串元素.classList.remove('类名')// 切换一个类 有该类删除,没有添加,总之切换元素.classList.toggle('类名')

示例:

<!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>​ .box {​ width: 200px;​ height: 200px;​ background-color: aqua;​ }​ .boxone {​ width: 300px;​ height: 300px;​ background-color: red;​ border: 2px solid black;​ margin: 10px;​ }</style></head><body><div class="box boxone"></div><script>​ const box = document.querySelector('.box');​ //添加classList.add('boxone');​ //box.classList.add('boxone');​ //console.log(box.classList);​ //删除classList.remove('boxone');​ //box.classList.remove('boxone');​ //console.log(box.classList);​ //切换classList.toggle('boxone');​ box.classList.toggle('boxone');​ console.log(box.classList);</script></body></html>

操作 表单元素 属性

表单很多情况,也需要修改属性,比如点击眼睛,可以看到密码,本质是把表单类型转换为文本框正常的有属性有取值的 跟其他的标签属性没有任何区别自定义属性

语法

获取:DOM对象.属性名

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

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

代码示例

<!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><input type="checkbox" id="checkbox" checked><button id="submit-button">提交</button> <!-- 移除 disabled 属性 --><script>​ document.addEventListener('DOMContentLoaded', () => {​ const checkbox = document.querySelector('#checkbox');​ const button = document.querySelector('#submit-button');​ //const input = document.querySelector('input');​ //input.type = 'password';​ //input.value = '123';​ //input.addEventListener('input', () => {​ // console.log(input.value);​ //});​ // 初始状态检查​ console.log(button.disabled); // 输出 false​ console.log(checkbox.checked); // 输出 true​ // 设置按钮的初始状态​ button.disabled = !checkbox.checked;​ // 监听复选框的变化​ checkbox.addEventListener('change', () => {​ button.disabled = !checkbox.checked;​ console.log(button.disabled); // 输出按钮的禁用状态​ console.log(checkbox.checked); // 输出复选框的选中状态​ });​ });</script></body></html>

自定义属性

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

在html5中推出来了专门的data-自定义属性在标签上一律以data-开头在DOM对象上一律以dataset对象方式获取

例如:

<body><div class="box" data-id="10">盒子</div><script>const box= document.querySelector('.box');console.log(box.dataset.id)</script></body>

示例代码

<!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 data-id="1" data-spm="不知道">1</div><div data-id="2">2</div><div data-id="3">3</div><script>​ const one = document.querySelector('div');​ console.log(one.dataset.id);​ console.log(one.dataset.spm);</script></body></html>
  • one.dataset 访问 one 元素的自定义数据属性。

  • dataset 对象包含所有以 data- 开头的属性,属性名会自动转换为驼峰命名法(camelCase)。

  1. 自定义数据属性 (data-* 属性)

    • 自定义数据属性允许你在 HTML 元素中存储额外的数据,这些数据可以通过 JavaScript 访问和操作。

    • 自定义数据属性的名称必须以 data- 开头,后面可以是任意有效的属性名。

  2. data-id 属性

    • data-id 是一个常见的自定义数据属性,通常用于标识元素的唯一 ID 或其他相关的标识信息。

    • 你可以根据需要为元素添加 data-id 属性,并在 JavaScript 中访问其值

    • data-spm 是一个自定义属性,通常用于特定的用途,例如标识元素的来源、跟踪代码、广告标识等。

    • 具体用途取决于项目的需求和约定。


总结

山外有山,楼外有楼,各位仍需打磨,互相加油

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

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

相关文章

element-plus大版本一样,但是小版本不一样导致页面出bug

npm 的版本 node的版本 npm的源这些都一样&#xff0c;但是效果不一样 发现是element的包版本不一样导致的 2.9.1与2.8.1的源是不一样的&#xff0c;导致页面出bug;

【网络协议】开放式最短路径优先协议OSPF详解(一)

OSPF 是为取代 RIP 而开发的一种无类别的链路状态路由协议&#xff0c;它通过使用区域划分以实现更好的可扩展性。 文章目录 链路状态路由协议OSPF 的工作原理OSPF 数据包类型Dijkstra算法、管理距离与度量值OSPF的管理距离OSPF的度量值 链路状态路由协议的优势拓扑结构路由器O…

《数据结构》期末考试测试题【中】

《数据结构》期末考试测试题【中】 21.循环队列队空的判断条件为&#xff1f;22. 单链表的存储密度比1&#xff1f;23.单链表的那些操作的效率受链表长度的影响&#xff1f;24.顺序表中某元素的地址为&#xff1f;25.m叉树第K层的结点数为&#xff1f;26. 在双向循环链表某节点…

华为数通考试模拟真题(附带答案解析)题库领取

【多选题】 管理员想要更新华为路由器的VRP版本&#xff0c;则正确的方法有? A管理员把路由器配置为FTP服务器&#xff0c;通过FTP来传输VRP软件 B:管理员把路由器置为FTP客户端&#xff0c;通过FTP来传输VRP软件 C:管理员把路由器配置为TFTP客户端&#xff0c;通过TFTP来传…

Linux:操作系统不朽的传说

操作系统是计算机的灵魂&#xff0c;它掌控着计算机的硬件和软件资源&#xff0c;为用户和应用程序提供了一个稳定、高效、安全的运行环境。 在众多操作系统中&#xff0c;Linux 的地位举足轻重。它被广泛应用于服务器、云计算、物联网、嵌入式设备等领域。Linux 的成功离不开…

前端(API)学习笔记(CLASS 4):进阶

1、日期对象 日期对象&#xff1a;用来表示事件的对象 作用&#xff1a;可以得到当前系统时间 1、实例化 在代码中发现了new关键字&#xff0c;一般将这个操作称为实例化 创建一个时间对象并获取时间 获得当前时间 const datenew Date() 使用日志查看&#xff0c;得到的…

【USRP】教程:在Macos M1(Apple芯片)上安装UHD驱动(最正确的安装方法)

Apple芯片 前言安装Homebrew安装uhd安装gnuradio使用b200mini安装好的路径下载固件后续启动频谱仪功能启动 gnu radio关于博主 前言 请参考本文进行安装&#xff0c;好多人买了Apple芯片的电脑&#xff0c;这种情况下&#xff0c;可以使用UHD吗&#xff1f;答案是肯定的&#…

SAP 01-初识AMDP(ABAP-Managed Database Procedure)

1. 什么是AMDP(ABAP-Managed Database Procedure) 1.&#xff09;AMDP - ABAP管理数据库程序&#xff0c;是一种程序&#xff0c;我们可以使用SQLSCRIPT在AMDP内部编写代码&#xff0c;SQLSCRIPT是一种与SQL脚本相同的数据库语言&#xff0c;这种语言易于理解和编码。 将AM…

智能客户服务:科技如何重塑客户服务体验

在数字化时代&#xff0c;客户对于服务的需求和期望在不断演变。传统的客户服务模式已经难以满足现代消费者对于即时性、个性化和高效性的追求。随着人工智能、大数据、云计算等先进技术的蓬勃发展&#xff0c;智能客户服务应运而生&#xff0c;不仅重塑了客户服务的体验&#…

[论文笔记]Representation Learning with Contrastive Predictive Coding

引言 今天带来论文 Representation Learning with Contrastive Predictive Coding的笔记。 提出了一种通用的无监督学习方法从高维数据中提取有用表示&#xff0c;称为对比预测编码(Contrastive Predictive Coding,CPC)。使用了一种概率对比损失&#xff0c; 通过使用负采样使…

Kafka 消费者专题

目录 消费者消费者组消费方式消费规则独立消费主题代码示例&#xff08;极简&#xff09;代码示例&#xff08;独立消费分区&#xff09; offset自动提交代码示例&#xff08;自动提交&#xff09;手动提交代码示例&#xff08;同步&#xff09;代码示例&#xff08;异步&#…

【踩坑指南2.0 2025最新】Scala中如何在命令行传入参数以运行主函数

这个地方基本没有任何文档记录&#xff0c;在学习的过程中屡屡碰壁&#xff0c;因此记录一下这部分的内容&#xff0c;懒得看可以直接跳到总结看结论。 踩坑步骤 首先来看看书上让我们怎么写&#xff1a; //main.scala object Start {def main(args:Array[String]) {try {v…

数据分析思维(七):分析方法——群组分析方法

数据分析并非只是简单的数据分析工具三板斧——Excel、SQL、Python&#xff0c;更重要的是数据分析思维。没有数据分析思维和业务知识&#xff0c;就算拿到一堆数据&#xff0c;也不知道如何下手。 推荐书本《数据分析思维——分析方法和业务知识》&#xff0c;本文内容就是提取…

CSS 之 position 定位属性详解

CSS系列文章目录 CSS 之 display 布局属性详解 CSS 之 position 定位属性详解一文搞懂flex布局 【弹性盒布局】 文章目录 CSS系列文章目录一、前言二、静态定位&#xff1a;position:static&#xff1b;二、相对定位&#xff1a;position:relative三、绝对定位&#xff1a;pos…

麒麟信安云在长沙某银行的应用入选“云建设与应用领航计划(2024)”,打造湖湘金融云化升级优质范本

12月26日&#xff0c;2024云计算产业和标准应用大会在北京成功召开。大会汇集政产学研用各方专家学者&#xff0c;共同探讨云计算产业发展方向和未来机遇&#xff0c;展示云计算标准化工作重要成果。 会上&#xff0c;云建设与应用领航计划&#xff08;2024&#xff09;建云用…

微信小程序Uniapp

使用命令行创建项目&#xff08;vuets&#xff09; npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project然后用HBX打开项目 再安装依赖 npm i 再运行开发版本&#xff0c;生成dist目录 pnpm dev:mp-weixin 注意要设置APPid 再用微信小程序打开

汇编环境搭建

学习视频 将MASM所在目录 指定为C盘

计算机网络--路由表的更新

一、方法 【计算机网络习题-RIP路由表更新-哔哩哔哩】 二、举个例子 例1 例2

热备份路由HSRP及配置案例

✍作者&#xff1a;柒烨带你飞 &#x1f4aa;格言&#xff1a;生活的情况越艰难&#xff0c;我越感到自己更坚强&#xff1b;我这个人走得很慢&#xff0c;但我从不后退。 &#x1f4dc;系列专栏&#xff1a;网路安全入门系列 目录 一&#xff0c;HSRP的相关概念二&#xff0c;…

今日头条ip属地根据什么显示?不准确怎么办

在今日头条这样的社交媒体平台上&#xff0c;用户的IP属地信息对于维护网络环境的健康与秩序至关重要。然而&#xff0c;不少用户发现自己的IP属地显示与实际位置不符&#xff0c;这引发了广泛的关注和讨论。本文将深入探讨今日头条IP属地的显示依据&#xff0c;并提供解决IP属…