WebAPIs-DOM操作元素属性/自定义属性

news2024/11/14 12:21:42

Web APIs

在这里插入图片描述

web APIs 操作页面元素做出各种效果

  • DOM 文档对象模型 使用js操作页面文档

  • BOM 浏览器对象模型 使用js操作浏览器

API

应用程序接口

接口:无需关心内部如何实现,只需要调用就可以很方便实现某些功能

作用:使用js提供的接口来操作页面元素和浏览器

alert()

DOM

DOM文档对象模型 Document Object Model

作用:Dom是用来操作网页元素,–网页特效和用户交互

DOM的核心就是把网页内容当做对象来处理,通过对象的属性和方法对网页内容进行操作

DOM对象

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

获取DOM元素

css选择器来获取DOM元素[重点]

document.querySelector('css选择器')
参数 包含一个或多个有效的css选择器 字符串
返回值
css选择器匹配的第一个元素对象
如果没有匹配 返回null
document.querySelectorAll('css选择器')
选择匹配的多个元素对象
得到的是一个伪数组
1.有长度有索引号的数组
2.没有pop()、push()等数组方法
想要得到里面的每一个元素,通过遍历(for)的方式得到
// document.querySelector('css选择器') 选择指定css选择器的第一个元素
//   const liEle= document.querySelector("li");
//   console.log(liEle);
//   返回dom对象
//   console.log(typeof liEle);  //object
//   console.dir(liEle);


//    const liEle=document.querySelector("ol li");
//    console.log(liEle) ;//只选择满足条件的第一个元素


const liEle = document.querySelector("ol li:nth-child(2)");
console.log(liEle);  //选择第2个元素

//  如果获取不到返回null
const pEle = document.querySelector('p');
console.log(pEle);//null

// 参数 包含一个或多个有效的css选择器 字符串
// document.querySelectorAll('css选择器')
const lis = document.querySelectorAll('.nav li');
console.log(lis)
// 伪数组
// lis.push(1)  //lis.push is not a function

for(let i=0;i<lis.length;i++){
	console.log(lis[i])  //每一个元素对象
}

// lis.forEach(item=>{
//     console.log(item)
// })
// 哪怕只有一个元素,querySelectorAll获取的也是一个伪数组,里面只有一个元素而已

其他【了解】

document.getElementById()
document.getElementsByClassName()
document.getElementsByTagName()
document.getElementsByName()
    <div id="box">我是id盒子</div>
    <div class="item">我是类盒子</div>
    <div class="item">我是类盒子</div>
    <div class="item">我是类盒子</div>
    <p>我是段落</p>
    <p>我是段落</p>
    <p>我是段落</p>
    <input type="text" name="username" />
    <input type="password" name="password" />
    <script>
        // document.getElementById()  根据id获取
        const box = document.getElementById('box')
        console.log(box)
        // document.getElementsByClassName() 根据类名获取  返回伪数组
        const items = document.getElementsByClassName('item')
        console.log(items)
        // document.getElementsByTagName()  根据标签名获取  返回伪数组
        const ps = document.getElementsByTagName('p')
        console.log(ps)
        // document.getElementsByName() 根据name属性值获取  返回伪数组
        const inps = document.getElementsByName('username')
        console.log(inps)
    </script>

操作元素内容

DOM对象可以操作页面元素,本质上就是操作DOM对象(增删除改)

  • 对象.innerText
    渲染文本内容到标签
    显示纯文本,不解析标签
  • 对象.innerHTML
    渲染文本内容到标签
    会解析标签

操作元素常用属性

可以通过DOM操作元素属性,比如src更换图片地址
常见的属性有href、title、src

对象.属性 = 值

操作元素样式属性

可以通过DOM对象修改标签元素的样式属性
轮播图小圆点自动更换颜色样式
点击按钮可以滚动图片,移动的位置translateX

  • style属性操作css
对象.style.样式属性 = "值"
  • 类名操作css
    如果修改的样式比较多,直接通过style修改比较繁琐,借助css类名
    把多个样式放到一个css的类中,把类添加到元素上
对象.className =  '类名' 

利用类名操作样式添加新的类名会覆盖掉原先的类名

  • classList操作类
    为了解决className容易覆盖以前的类名,可以通过classList追加和删除类名
对象.classList.add("类名")     // 添加
对象.classList.remove("类名")  // 移除
对象.classList.toggle("类名")  // 切换 如果元素有这个类名就删除,没有就添加

表单常见属性

获取:DOM对象.属性
设置:DOM对象.属性 = 值

表单.value = '123'
表单.type = "password"

表单属性中添加就有效果,移除就没有效果,使用布尔值表示
比如实现禁用按钮,勾选按钮等,如果为true代表添加了该属性,为false表示移除了该属性;
disabled checked selected

自定义属性

标准属性:标签天生自带的属性 class,id,title等,可以直接使用点语法操作,比如对象.title
自定义属性:html5推出的专门的 data-自定义属性
使用场景:通过自定义属性可以存储数据,后期可以使用这个数据

<div class="box" data-id="3" data-name="box"></div>
    <script>
        // 自定义属性
        // 1.获取盒子
        const box = document.querySelector('.box');

        // 2.得到自定义属性得值
        console.log(box.dataset);  //得到一个对象集合  {id: '3', name: 'box'}
        console.log(box.dataset.id);  //3
        console.log(box.dataset.name);//box
    </script>

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

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

相关文章

SQL事务与隔离

事务 事务的定义 事务是完成一个任务的多条语句,这些语句中,只要有一条语句失败,那么整个事务就会失败,即使之前的语句已经执行完毕也会被撤回 举个例子: 我去银行给王哥转钱,这个转钱呢分两个步骤,第一步先把我的钱拿出来,第二步把钱给王哥,那万一刚把我钱拿出来但是没到王…

大数据分析案例-基于LightGBM算法构建公司破产预测模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

1.网络基础

什么是网络&#xff1f; 信息传递&#xff0c;资源共享 计算机—1946年2月14日—电脑 电流—二进制— 1001—人类语言&#xff08;抽象语言&#xff09;—应用程序—编译—编码—应用层 把人类语言转化为二进制—表示层&#xff08;编码表&#xff09; 网路层——路由器&#x…

AI 绘画 - 建筑绘图辅助设计之生图

前情提要 2023-06-16 周五 杭州 小雨 小记: 今天下班&#xff0c;回来比较晚&#xff0c;端午节去看老弟&#xff0c;只希望下周不要那么多乱七八糟的事情了&#xff0c;继续AI 绘画&#xff0c;之前上学的时候从来不爱做笔记的&#xff0c;现在或许是老了吧&#xff0c;。 …

C语言复习笔记5

1.函数 #include<stdio.h>void Add(int *p) {(*p); }int main() {int time0;Add(&time);printf("%d\n",time);return 0; }2.二分查找 #include<stdio.h>void Add(int *p) {(*p); }int main() {int time0;Add(&time);printf("%d\n",t…

Linux常用命令——findfs命令

在线Linux命令查询工具 findfs 标签或UUID查找文件系统 补充说明 findfs命令依据卷标&#xff08;Label&#xff09;和UUID查找文件系统所对应的设备文件。findfs命令会搜索整个磁盘&#xff0c;看是否有匹配的标签或者UUID没有&#xff0c;如果有则打印到标注输出上。find…

Spring中的设计模式

目录 1.Spring中使用到的设计模式有&#xff1a; 2.工厂模式 3.单例模式 4.代理模式 5.模板模式 6.适配器模式 1.Spring中使用到的设计模式有&#xff1a; 工厂模式&#xff1a;实现IoC容器 单例模式&#xff1a;将bean设置为单例 代理模式&#xff1a;AOP的底层实现 模板…

聊一聊.NET的网页抓取和编码转换

在本文中&#xff0c;你会了解到两种用于 HTML 解析的类库。另外&#xff0c;我们将讨论关于网页抓取&#xff0c;编码转换和压缩处理的知识&#xff0c;以及如何在 .NET 中实现它们&#xff0c;最后进行优化和改进。 文章目录 1. 背景2. 网页抓取3. 编码转换4. 网页压缩处理5.…

C#,数值计算——哈夫曼编码与数据压缩技术(Huffman Coding and Compression of Data)源代码

1 霍夫曼编码导论 霍夫曼编码是一种基于数据集中符号频率的无损数据压缩形式。它是一种前缀编码方案&#xff0c;这意味着编码的数据不包含任何冗余比特。霍夫曼编码广泛应用于各种应用&#xff0c;如图像和视频压缩、数据传输和数据存储。 2 霍夫曼编码的优点 以下是霍夫曼编…

[LeetCode周赛复盘] 第 326 场周赛20230702

[LeetCode周赛复盘] 第 326 场周赛20230702 一、本周周赛总结6909. 最长奇偶子数组1. 题目描述2. 思路分析3. 代码实现 6916. 和等于目标值的质数对1. 题目描述2. 思路分析3. 代码实现 6911. 不间断子数组1. 题目描述2. 思路分析3. 代码实现 6894. 所有子数组中不平衡数字之和…

【小沐学Unity3d】Unity播放视频(VideoPlayer组件)

文章目录 1、简介2、脚本播放示例3、界面播放示例3.1 2d界面全屏播放3.2 2d界面部分区域播放3.3 3d模型表面播放 结语 1、简介 使用视频播放器组件可将视频文件附加到游戏对象&#xff0c;然后在运行时在游戏对象的纹理上播放。 视频播放器 (Video Player) 组件: 属性功能Sourc…

Java实现OpenAI 模型训练(fine-tune)

本文章介绍如何用java实现OpenAI模型训练&#xff0c;仅供参考 提前准备工作 OpenAI KEY&#xff0c;获取方式可自行百度需要自备VPN 或 使用国外服务器转发需要训练的数据集&#xff0c;文章格式要求为JSONL&#xff0c;格式内容详见下图&#xff08;尽量不要低于500个问答&…

openai

⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐作者主页&#xff1a;逐梦苍穹 ⭐所属专栏&#xff1a;人工智能。 目录 1、简介2、如何实现3、api文档 1、简介 OpenAI 提供了一个名为 OpenAI API 的库&#xff0c;用…

npm构建vite项目

基础环境 npm init vitelatest 依次输入项目名称、使用框架、使用语言。 生成的项目 进入目录&#xff0c;安装依赖&#xff0c;启动项目。 cd 0702_demo01npm installnpm run dev

网络安全进阶学习第四课——SSRF服务器请求伪造

文章目录 一、什么是SSRF&#xff1f;二、SSRF成因三、SSRF简析四、PHP存在SSRF的风险函数五、后台源码获取方式六、SSRF危害七、SSRF漏洞挖掘从WEB功能上寻找&#xff0c;从URL关键字中寻找 八、SSRF具体利用ssrf常利用的相关协议PHP伪协议读取文件端口扫描 九、SSRF存在的必要…

架构分层方法指导

在《不过时的经典层架构》里讲了经典的四层架构怎样对易变性做封装。咱们实际项目中&#xff0c;如果没有足够的实践和关键性思考&#xff0c;还是很可能使用名义上科学的分类理论&#xff0c;却在按照功能进行架构分层。今天咱们就通过一些简单的指导来尽量减少这种风险。 四问…

LeetCode 75 —— 70. 爬楼梯

LeetCode 75 —— 70. 爬楼梯 一、题目描述&#xff1a; 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法…

机器学习笔记 - 基于OpenCV和Vantage-point tree构建图像哈希搜索引擎

一、关于图像哈希 上一篇文章中,了解到了图像哈希是使用算法为图像分配唯一哈希值的过程。在深度学习普及之前,一些搜索引擎使用散列技术来索引图像。 言外之意目前的图像搜索引擎主要都是基于深度学习的技术,不过思路都是一样的,我们这里基于OpenCV提供的图像哈希技术构建…

python实现削苹果小游戏

也不用998只有199源码发你。 支付完发我邮箱发你源代码。

RISC-V处理器的设计与实现(三)—— 上板验证(基于野火征途Pro开发板)

文章目录 RISC-V处理器的设计与实现&#xff08;一&#xff09;—— 基本指令集_Patarw_Li的博客-CSDN博客 RISC-V处理器的设计与实现&#xff08;二&#xff09;—— CPU框架设计_Patarw_Li的博客-CSDN博客 RISC-V处理器的设计与实现&#xff08;三&#xff09;—— 上板验…