Javascript:Web APIs(一)

Javascript基础(一)

Javascript基础(二)

Javascript基础(三)

Javascript基础已经结束,接下来我们将进入到整个Web API学习中,在此,我们将学习DOM操作,基本的事件,BOM操作,正则表达式等内容。接下来我们将学习BOM操作,通过改变网页元素来让网页产生动态效果。

API 

API: 应用程序接口(Application Programming Interface) 

你可以认为API就是一台家电,你不需要知道它内部是如何工作的,你只需要知道怎么操作才能给它下达命令就可以了,API也是如此,如果你学过机器学习,那么或许你对sklearn这个包不陌生,编写代码时我们只需要调用sklearn中的类来直接实现我们的目的而不需要知道机器学习的内部算法,这就是调用其API。即无需关心内部如何实现,程序员只需要调用就可以很方便实现某些功能。

DOM 

DOM(Document Object Model——文档对象模型)

作用:DOM用来 操作网页文档,开发网页特效和实现用户交互
DOM的核心思想就是把网页内容当做对象来处理,通过对象的属性和方法对网页内容操作。

 1.获取DOM对象

获取DOM对象前,我们首先得了解document对象,document对象是DOM的顶级对象,你可以认为整个网页都是document对象,而我们获取DOM元素其实就是调用documen对象的方法查找它其中的其他标签对象。

<!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>
<style></style><body><ul><li>1</li><li>2</li><li>3</li></ul><script>lis = document.querySelector('ul');console.log(lis);console.dir(lis);</script></body></html>

 

 在代码中,我们调用了document对象的querySelector()方法,这个方法的参数为css类选择器,

css类选择器在CSS进阶一文中提及到过,除此之外最简单的标签选择器当然也适用。该方法会返回一个元素对象,如果该元素对象还有子代元素,那么还可以接着使用querySelector()方法继续查找。

<!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>
<style>.box {height: 100px;width: 100px;}
</style><body><div><ul><li></li><li></li><li></li></ul></div><script>box = document.querySelector('div');ul = box.querySelector('ul');console.dir(ul);</script></body></html>

当然,querySelector()方法只能返回第一个找到的元素,倘若要查找的元素有多个,那么就得使用querySelectorAll()方法,该方法会返回多个元素对象组成的伪数组。 伪数组就是只有下标和数组单元却没有方法(如pop,shift一类)的数组。

 

<!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>
<style>.box {height: 100px;width: 100px;}
</style><body><div><ul><li></li><li></li><li></li></ul></div><script>lis = document.querySelectorAll('li');console.log(lis);</script></body></html>

 

其他方法获取DOM对象 

 

// 1. getElementById 根据id获取
const box = document.getElementById('box')
console.log(box)
// 2. getElementsByClassName 根据类名获取 返回伪数组
const items = document.getElementsByClassName('item')
console.log(items)
// 3. getElementsByTagName 根据标签名获取 返回伪数组
const ps = document.getElementsByTagName('p')
console.log(ps)
// 4. getElementsByName 根据name属性获取 返回伪数组
const inputs = document.getElementsByName('username')
console.log(inputs)

这些方法基本上已经不再使用,querySelector和querySelectorAll已经可以胜任绝大部分查找工作,权做了解即可。 

 

2.操作元素内容 

如果想要操作标签元素的内容,则可以使用如下2种方式:
1.对象.innerText 属性
2.对象.innerHTML 属性 

 <1>InnerText

innerText 将文本内容添加/更新到任意标签位置,文本中包含的标签不会被解析。简单的说就是不识别标签元素,全部看成文本信息处理。

<!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>
<style>.box {height: 100px;width: 100px;}
</style><body><p>修改前</p><script>const p = document.querySelector('p');p.innerText = '<strong>修改后</strong>'</script></body></html>

 

<2>InnerHTML 

innerHTML 将文本内容添加/更新到任意标签位置,文本中包含的标签会被解析。

<!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>
<style>.box {height: 100px;width: 100px;}
</style><body><p>修改前</p><script>const p = document.querySelector('p');p.innerHTML = '<strong>修改后</strong>'</script></body></html>

 

<3>常用属性修改 

常用属性包括href,src,title,alt等等,我们可以通过修改这些属性让图片改变,这就是常用属性修改,其实和InnerText和InnerHTML也差不多。

<4>操作样式属性

操作样式属性非常重要,我们可以写好样式,通过js来应用给特定元素。

<script>
// 通过style操作元素样式
// 1. 先要获取这个box元素对象
const box = document.querySelector('.box')
// 2. 通过style来从操作样式
box.style.width = '300px'
box.style.marginTop = '50px'
box.style.backgroundColor = 'skyblue'
// 3. 注意事项// 3.1 给样式赋值的时候,千万不要忘了加单位比如 300px
// 3.2 如果有-的样式,我们采取的是小驼峰命名法比如 marginTop
// 3.3 一定不要忘了加 style 属性
</script>

<5>操作类名

<script>
// 通过类名操作元素样式
// 1. 获取box盒子
const box = document.querySelector('.box')
// 2. 利用类名操作元素样式
// box.className = 'circle'box.className = 'box circle'
// 3. 利用类名操作样式添加的新的类名会覆盖掉原先的类名
</script>

<6>通过 classList 操作类控制CSS 

 

 

<7>自定义属性 

标准属性: 标签天生自带的属性 比如class、id、title等, 可以直接使用点语法操作比如: 对象.title
自定义属性:
● 在html5中推出来了专门的data-自定义属性
● 使用场景:通过自定义属性可以存储数据,后期可以使用这个数据
● 在标签上一律以data-开头
● 在DOM对象上一律以dataset对象方式获取 

<script>
// 自定义属性
// 1. 获取盒子
const box = document.querySelector('.box')
// 2. 得到自定义属性值
// console.log(box.dataset) // 得到一个对象集合
// console.log(box.dataset.id) // 1
// console.log(box.dataset) // 得到一个对象集合
console.log(box.dataset.name) // box
</script>

<8>定时器-间隔函数 

 

网页中经常会需要一种功能:每隔一段时间需要自动执行一段代码,不需要我们手动去触发
例如:网页中的 倒计时
要实现这种需求,需要 定时器函数
定时器函数有两种: 间隔函数 和 延迟函数
setInterval 是 JavaScript 中内置的函数,它的作用是间隔固定的时间自动重复执行另一个函数,也叫定时器函数。 

<script>
setInterval(function () {
console.log('我是1秒钟执行一次')
}, 1000)
</script>

关闭定时器 

 

<script>
let timer = setInterval(repeat, 1000) // 注意调用的时候直接写函数名字不需要写小括号
console.log(timer) // 1
let timer1 = setInterval(repeat, 1000) // 注意调用的时候直接写函数名字不需要写小括号
console.log(timer1) // 2
// 2. 关闭定时器
clearInterval(timer)
</script>

 

 

 

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

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

相关文章

免费、中文版的 Postman 替代工具,提高工作效率

为啥不用 Postman Postman 是挺好用的&#xff0c;但是人家就是死活不支持中文啊。。。这也导致了上手门槛的增高&#xff0c;劝退了很多人~ 接下来推荐几款可以替代 Postman 的国产 API 工具。 怎么替代&#xff1f; 先来说说国内有哪些API工具&#xff1a; ApifoxEolink…

图像预处理工具_CogImageFileTool

CogImageFileTool工具可以用来将单张图片或idb格式的图片数据库读入内存。也可使用CoglmageFileTool工具将图片插入到.idb数据库里。 添加工具 参数介绍 文件名 写入模式 读取模式 删除

暗区突围端游海外版测试怎么预约 暗区突围预约教程的图文教程分享

暗区突围端游海外版测试怎么预约 暗区突围预约教程的图文教程分享 《暗区突围》一款大逃杀类的fps类型游戏&#xff0c;游戏的核心玩法是撤离暗区并收集物资&#xff0c;玩家可根据不同策略选择装备&#xff0c;并在战局中搜集信息&#xff0c;最终逃离暗区赢得游戏&#xff0…

LLM应用:AI代码助手插件

vscode code助手在线插件 1&#xff09;国内 codegeex &#xff08;清华&#xff09; https://codegeex.cn/ iflycode&#xff08;讯飞&#xff09; http://iflycode.xfyun.cn/ comate&#xff08;百度&#xff09; https://comate.baidu.com/zh/download lingma&#xff…

咸鱼之王攻略:2024强阵容搭配

欢迎来到《咸鱼之王》的世界&#xff01;作为一款集合了策略与角色扮演元素的游戏&#xff0c;本攻略将为您提供一系列关于游戏阵容搭配和咸将选择的建议&#xff0c;帮助您在游戏中更好地获得胜利。 1.了解游戏阵营 《咸鱼之王》分为四个阵营&#xff1a;魏、蜀、吴、群。每个…

IOS上线操作

1、拥有苹果开发者账号 2、配置证书&#xff0c;进入苹果开发者官网&#xff08;https://developer.apple.com/&#xff09; 3、点击账户&#xff08;account&#xff09;&#xff0c;然后创建一个唯一的标识符 4、点击"Identifiers"&#xff0c;然后点击"&qu…

是机遇?是未来?拥抱 AI Agent ,拥抱 AI 2.0时代~

✍️ 作者&#xff1a;哈哥撩编程&#xff08;视频号同名&#xff09; 博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者 &#x1f3c6; 推荐专栏&#xff1a; &#x1f3c5; 程序员&#xff1a;职场关键角色通识宝…

区块链 | IPFS 工作原理入门

&#x1f98a;原文&#xff1a;What is the InterPlanetary File System (IPFS), and how does it work? &#x1f98a;写在前面&#xff1a;本文属于搬运博客&#xff0c;自己留存学习。 1 去中心化互联网 尽管万维网是一个全球性的网络&#xff0c;但在数据存储方面&#…

模块六:模拟——1419.数青蛙

文章目录 题目描述算法原理解法&#xff08;模拟 分情况讨论&#xff09; 代码实现 题目描述 题目链接&#xff1a;1419.数青蛙 算法原理 解法&#xff08;模拟 分情况讨论&#xff09; 模拟⻘蛙的叫声。 当遇到 ‘r’ ‘o’ ‘a’ ‘k’ 这四个字符的时候&#xff0c;我…

ctfshow web入门 sql注入 web201--web208

web201 先扫描先 python .\sqlmap.py -u "http://4863661d-2371-4812-ae62-128fadbdc0a4.challenge.ctf.show/api/?id" --user-agentsqlmap 加头 python .\sqlmap.py -u "http://4863661d-2371-4812-ae62-128fadbdc0a4.challenge.ctf.show/api/?id" --u…

考研数据结构chap8排序

目录 一、概念 1.评价 &#xff08;1&#xff09;稳定性 &#xff08;2&#xff09;Tn、Sn 2.分类 &#xff08;1&#xff09;内部排序 &#xff08;2&#xff09;外部排序 二、插入排序 1.直接插入排序(InsertSort) &#xff08;1&#xff09;思路 &#xff08;2&am…

四元数代数

书籍&#xff1a;Quaternion Algebras 作者&#xff1a;John Voight 出版&#xff1a;Springer 书籍下载-《四元数代数》这本教科书全面介绍了四元数代数和阶的算术理论&#xff0c;这一主题在数学的不同领域都有应用。这本书为研究生读者撰写&#xff0c;易于阅读和理解&am…

24华东杯A题9页完整思路+代码+可视化图表

​比赛题目的完整版思路可执行代码数据参考论文都会在第一时间更新上传的&#xff0c;大家可以参考我往期的资料&#xff0c;所有的资料数据以及到最后更新的参考论文都是一次付费后续免费的。注意&#xff1a;&#xff08;建议先下单占坑&#xff0c;因为随着后续我们更新资料…

[]2024年第⼗五届蓝桥杯全国软件和信息技术专业人才大赛(Web 应用开发)

一、爱拼才会赢&#xff08;5分&#xff09; 介绍 由爱拼社举办的拼图⼤赛进⾏到最后⼀关&#xff0c;1 号选⼿⼩蓝披荆斩棘成为全场⿊⻢。本关卡需要选⼿使⽤ CSS Grid 布局完成拼图⻚⾯&#xff0c;但是由于⼩蓝技术⽔平有限&#xff0c;拼图的效果没有达到预期。现在邀请你…

Flutter 弃用 WillPopScope 使用 PopScope 替代方法

Flutter 弃用 WillPopScope 使用 PopScope 替代方法 视频 https://youtu.be/u3qdqUvFWiM https://www.bilibili.com/video/BV1aJ4m1n7FZ 前言 原文 https://ducafecat.com/blog/migrating-from-willpopscope-to-popscope-in-flutter 了解如何在 Flutter 3.16 中将弃用的 Wil…

C++笔试练习笔记 【2】: 数字统计 BC153 两个数组的交集 NC313 点击消除 AB5

文章目录 数字统计分析题目代码部分 两个数组的交集题目分析代码部分 点击消除题目解析代码部分 数字统计 分析题目 这个题涉及到两个知识点&#xff0c;就是枚举和数字的拆分 那么我的思路是进行遍历&#xff0c;拆分数字判断二的个数&#xff0c;枚举进行计数 那么数字的拆分…

如何通过前后端交互的方式制作Excel报表

前言 Excel拥有在办公领域最广泛的受众群体&#xff0c;以其强大的数据处理和可视化功能&#xff0c;成了无可替代的工具。它不仅可以呈现数据清晰明了&#xff0c;还能进行数据分析、图表制作和数据透视等操作&#xff0c;为用户提供了全面的数据展示和分析能力。 今天小编就…

labview中TDMS读写波形图

TDMS与二进制读写速度区别不大&#xff0c;但是它具备关系型数据库的一些优点&#xff0c;经常用于存取波形数据。

操作系统的运行机制详解

操作系统的 运行机制 #mermaid-svg-jVBbLUJa6gITOo7L {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-jVBbLUJa6gITOo7L .error-icon{fill:#552222;}#mermaid-svg-jVBbLUJa6gITOo7L .error-text{fill:#552222;stroke…

Spring实战项目【从0到1】:博客系统(上)

目录 1. 项目介绍2. 项目准备2.1 数据库准备2.2 创建项目2.3 配置文件2.4 准备前端页面2.5 测试 3. 项目公共模块3.1 实体类3.2 公共层 4. 业务代码4.1 持久层代码4.2 实现博客列表4.3 实现博客详情 1. 项目介绍 使用SSM框架&#xff08;Spring、Spring MVC、MyBatis框架)实现…