JavaScript的Web api

文章目录

  • JavaScript的Web api
    • 选中元素
    • 事件
    • 操作元素
      • 获取/元素内容
      • 获取/修改元素属性
      • 获取/修改表单元素属性
        • 实现一个显示/隐藏 密码的功能
        • 实现一个加减计算器
        • 复选框全选/全不选
      • 获取/修改样式属性
        • 点击文字放大字体
        • 实现白天模式与夜间模式的切换
      • 操作节点
        • 新增节点
        • 删除节点
    • 猜数字练习

之前学过了一些JS的基础语法,但是还是不能写出一个页面的动态效果所以此时就有必要学习浏览器给JS提供的api

网页是运行在浏览器上的,学习js最大的目的就是能够实行与用户交互,进一步操作页面上的内容.这些都要使用浏览器的api

在Web api 中,有很多的api , BOM和DOM只是其中的一部分,还有能操作多媒体的api, 还有能操作画板的api…

此处的重点是DOM(Document Operation Model 文档操作模型)来操作页面

要想深入全面的了解相关的api , 就可以去MDN上搜索相关的内容,很时候查阅 MDN

通过使用DOM, 可以将HTML页面上的每个标签, 都对应成js中的一个对象,通过这个对象就能获取/修改标签的内容和属性

简而言之,DOM api就是用来操作页面

DOM api也是有很多,此处也只是介绍一小部分

选中元素

<body><div class="one">hello</div><script>//querySelector的参数是一种CSS选择器//可以使用前面学过的任意一种选择器,来选中元素// let div = document.querySelector('div');//标签选择器let div2 = document.querySelector('.one');//类选择器console.log(div2);//dir方法能够将对象 以 元素的形式打印出来console.dir(div2);</script>

要是有多个相同名字,document.querySelector就会选中第一个

<body><div>hello1</div><div>hello2</div><div>hello3</div><script>let div = document.querySelector('div');//此时只会选中第一个divconsole.log(div);console.dir(div);</script></body>

要是想全部选中,就要使用document.querySelectorAll() 选中所有

事件

事件是与用户密切相关的,用户在浏览器上,点击鼠标,滑动滚轮, 调整窗口的位置…这些都是事件

用户针对浏览器进行的操作,都会由浏览器产生对应的"事件"

我们不知道用户什么时候会进行操作,所以只能事先做准备好代码,针对不同的事件进行处理

<body><div>hello1</div><script>let div = document.querySelector('div');//先选中元素console.log(div);div.onclick = function(){  //点击一下hello1,就出执打印一次"按下鼠标"console.log("按下鼠标");}</script>
</body>

chrome控制台会默认把相同的日志给合并成一个,此时前面就会有一个数字,表示这个操作重复执行了多少次,要是不想合并,就不要勾选

<div>hello1</div><script>let div = document.querySelector('div');console.log(div);div.onclick = function(){console.log("按下鼠标");}div.onmousemove = function(){console.log("鼠标移动");}div.onmouseenter = function(){console.log("鼠标进来了");//点一下hello1,就算作是进来}div.onmouseleave = function(){console.log("鼠标出去了");//从进来到外面(hello1以外),就算是出去了}</script>

通过以上的代码就能感知到用户进行了哪些操作

事件的三个核心要素:

  1. 事件源: 事件是从哪个元素发出来的

    事件类型: 点击,移动,按下键盘, 调整窗口

  2. 事件处理程序: 通过哪个程序/代码来进行操作的

操作元素

元素就是html标签,就是说,在js中先获取到html对象之后,再来操作其中的内容或者属性

获取/元素内容

元素内容指的是开始标签和结束标签之间夹着的东西

<div>hello1</div>//中间的hello就是元素内容

使用 innerHTML 属性来获取/修改标签内的元素内容

<div>hello</div><script>let div = document.querySelector('div');//先选中元素console.log(div.innerHTML);//使用innerHTML来获取元素内容</script>

<div>hello</div><script>let div = document.querySelector('div');//先选中元素console.log(div.innerHTML);//使用innerHTML来获取元素内容//使用innerHTML赋值来修改元素内容div.onclick = function(){//点一下就变成了yesdiv.innerHTML = 'yes';//不仅能赋值成一个文本,还能赋值成一个html片段//div.innerHTML = '<button> 这是一个按钮 </button>';}
</script>

获取/修改元素属性

元素属性就是开始标签里面的东西,获取/修改的是开始标签中的键值对

 <img src=picture/man.png alt=""width = '200px'><script>let img = document.querySelector('img');console.log(img);//显示图片 console.log(img.src);//显示图片的具体地址img.onclick = function(){ //点一下就会修改图片地址,从而修改图片img.src = 'picture/female.png';}</script>

上面使用的函数都是没有名字的,也就是lambda表达式(匿名函数)

获取/修改表单元素属性

表单(主要是指 input 标签)的以下属性都可以通过 DOM 来修改

value: input 的值.

disabled: 禁用

checked: 复选框会使用

selected: 下拉框会使用

type: input 的类型(文本, 密码, 按钮, 文件等)

<input type="text"><button>点我获取输入内容</button><script>let input = document.querySelector('input');//选中元素let button = document.querySelector('button');button.onclick = function(){//console.log(input.innerHTML);//由于是单标签,所以没办法使用innerHTML获取到里面的内容console.log(input.value);//使用value就能获取到表单里面的值}
</script>

实现一个显示/隐藏 密码的功能

<input type="password"><button>显示密码</button><script>let input = document.querySelector('input');let button = document.querySelector('button');button.onclick = function(){if(input.type == 'password'){input.type = 'text';button.innerHTML = '隐藏密码';}else if(input.type == 'text'){input.type = 'password';button.innerHTML = '显示密码';}else{alert('格式错误');}}</script>

实现一个加减计算器

 <input type="text" value="0"><button id ="add">+</button><button id ="minus">-</button><script>let input = document.querySelector('input');let addBtn = document.querySelector('#add');//使用querySelector按照id选择器来选中元素let minusBtn = document.querySelector('#minus');addBtn.onclick = function(){let oldValue = parseInt(input.value);//将当前的值转换成整数//想要转换成整数,还有别的方法 : 在input.value前面加上+,就说明是正数,就变成了整数oldValue +=1;   input.value = oldValue;}minusBtn.onclick = function(){let oldValue = parseInt(input.value);oldValue -= 1;input.value = oldValue;}</script>

复选框全选/全不选

点击"我全都要",就会将上面的几个选项都选上,取消全选,之前选中的选项都取消

<div><input type="checkbox" class ="hero">闪电侠</div><div><input type="checkbox" class ="hero">蝙蝠侠</div><div><input type="checkbox" class ="hero">海王</div><div><input type="checkbox" class ="all">我全都要</div><script>//按照class选择器来选中let heros  = document.querySelectorAll('.hero');//有多个hero,所以heros是一个数组let all  = document.querySelector('.all');all.onclick = function(){for(let i = 0; i <heros.length; i++){heros[i].checked = all.checked;}}</script>

获取/修改样式属性

点击文字放大字体

<div  style="font-size: 10px">闪电侠</div><script>let div =document.querySelector('div');//选中元素console.log(div);div.onclick = function(){let oldValue = div.style.fontSize;//获取到fontSize的初始值oldValue = parseInt(oldValue);//将初始值变成整数oldValue += 10;//设置样式的时候,一定要加上单位div.style.fontSize = oldValue + 'px';</script>

实现白天模式与夜间模式的切换

 <style> .light{color: black;background-color: white;}.dark{color: white;background-color: black;}/* <!-- 但是这样子只有文字部分是夜间模式,要将整个页面都做成夜间模式,按照父类依次进行100%设置 --> */div{height:100%;}body{height: 100%;}head{height: 100%;}html{height: 100%;}</style><div class = "light">这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话这是很长的一段话</div><script>let status = document.querySelector('div');status.onclick = function(){//点击文字就会切换模式if(status.className == 'light'){status.className = 'dark';}else if(status.className == 'dark'){status.className = 'light';}else{alert('class 错误');}}</script>

操作节点

新增节点

新增节点主要是两个步骤:

  1. 先创建出元素 createElement()
  2. 将新元素加入到dom树上 appendChild()
 <div class = 'parent'><div>100</div><div>200</div><div>300</div></div><script>let div = document.querySelector('parent');//选中divconsole.log(div);let childDiv = document.createElement('div');//创建出一个新的节点childDiv.innerHTML = '400';//赋值div.appendChild(childDiv);//加入到div中</script>

删除节点

removeChild()

 <div class = 'parent'><div>100</div><div>200</div><div class = 'toDelete'>300</div></div><script>let div = document.querySelector('div');//选中divlet todelete = document.querySelector('.toDelete');div.removeChild(todelete);</script>

猜数字练习

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>guessNums</title>
</head><body><h2>请输入你要猜的数字</h2><input type="text"><br><br><div>结果是: <span id = "result"></span></div><div>当前已经猜的次数 : <span id = 'guessCount'>0</span></div><br><button >猜一次</button><br><script>    //1.先选中元素let input = document.querySelector('input');let result = document.querySelector('#result');let guessCount = document.querySelector('#guessCount');let button = document.querySelector('button');//2.生成一个1-100的随机数//Math.random()生成的是[0,1)的数字let toGuess = parseInt(Math.random()*100+1);//console.log(Guess);控制台上显示数字//3.给"猜"这个按钮加上 点击 事件button.onclick = function(){//a)先获取到输入框中的valuelet value = parseInt(input.value);//b)加个value与正确答案进行对比if(value < toGuess){result.innerHTML = '猜小了';}else if(value > toGuess){result.innerHTML = '猜大了'}else{result.innerHTML = '恭喜你,猜对了!'}//c)每点击一次提交,猜的次数就加一let oldguessCount = parseInt(guessCount.innerHTML);guessCount.innerHTML = oldguessCount += 1;}</script>
</body>
</html>

JavaScript的Web api接口相关推荐

  1. 调用JShaman的Web API接口,实现JS代码加密。

    在NodeJS中,调用JShaman的Web API接口,实现JS代码加密. 同样的方法,也可把该功能集成到自己的产品或项目中,让自己也具备JS加密功能. 调用JShaman接口的源码非常简单: /* ...

  2. 不使用jQuery对Web API接口POST,PUT,DELETE数据

    前些天,Insus.NET有演示Web API接口的操作: <怎样操作WebAPI接口(显示数据)>http://www.cnblogs.com/insus/p/5670401.html ...

  3. ASP.NET Web API 接口执行时间监控

    软件产品常常会出现这样的情况:产品性能因某些无法预料的瓶颈而受到干扰,导致程序的处理效率降低,性能得不到充分的发挥.如何快速有效地找到软件产品的性能瓶颈,则是我们感兴趣的内容之一. 在本文中,我将解释 ...

  4. Web API接口开发和测试

    4.ASP.NET Web API的开发 上面我们定义了一般的Web API接口,以及实现相应的业务实现,如果我们需要创建Web API层,还需要构建一个Web API项目的. 创建好相应的项目后,可 ...

  5. rap2检测哪些接口在使用_使用RAP2和Mock.JS实现Web API接口的数据模拟和测试

    最近一直在思考如何对Web API的其接口数据进行独立开发的问题,随着Web API的越来越广泛应用,很多开发也要求前端后端分离,例如统一的Web API接口后,Winform团队.Web前端团队.微 ...

  6. 鸿蒙开发访问webapi,Web API接口

    #e# 3.集合和分页的处理 在很多接口里面,我们都需要用到分页的处理,Web API也不例外,这样可以提交数据检索效率,减少服务器数据处理的压力,同时也提交客户端的数据显示速度. 一般的集合接口定义 ...

  7. Web API 接口-JavaScript全部api接口文档

    当使用JavaScript编写网页代码时,有很多API可以使用.以下是所有对象.类型等接口的列表,你在开发网页应用程序或站点时使用它们. API文档地址:https://developer.mozil ...

  8. web api接口开发实例_C# 物联网开发API接口系列(4)

    C# 物联网开发API接口系列(四) #久爱物联网#MQTT# [提纲] 1)获取设备列表(某用户的) 2)单独检查设备是否存在合法 [正文] /// /// 获取设备列表 /// /// 令牌 // ...

  9. WebApi系列~通过HttpClient来调用Web Api接口

    HttpClient是一个被封装好的类,主要用于Http的通讯,它在.net,java,oc中都有被实现,当然,我只会.net,所以,只讲.net中的HttpClient去调用Web Api的方法,基 ...

最新文章

  1. 线上会议丨中国中文信息学会2020学术年会将于12月27日举行
  2. MAC下PHP7.1.23安装intl3.0.0
  3. 从CMOS到触发器(一)
  4. 学机械可以转计算机吗,本人合工大车辆工程大一新生,但是机械类前景都不太好,我要不要转计算机,求教?...
  5. shadowplay要下载java_Java并发程序设计(二)Java并行程序基础
  6. SVM熟练到精通1:初识SVM
  7. JavaWeb学习之路——jsp与serverlet(一)
  8. A Brief History of NoSQL (转)
  9. 精选| 2020年8月R新包推荐(第45期)
  10. 5G(2)---让5G NR成为商用现实
  11. SzNOI语法百题之总目录
  12. [渣译文] SignalR 2.0 系列: SignalR简介
  13. 基于jQuery动画二级下拉导航菜单
  14. UltraCompare v2022文本比较
  15. 第一次爬虫之Select 小猪短租
  16. 程序员必读:摸清hash表的脾性
  17. html5的calc,CSS 计算属性 calc()的完整指南(下)
  18. 【报告分享】2021年中国新能源汽车行业洞察-Mob研究院(附下载)
  19. GBase 8c数据高可用技术
  20. 申请微信公众号,当前绑定的银行卡暂不支持实名验证...

热门文章

  1. 软件着作权转让交税如何缴纳
  2. 在程序中打开QQ对话框
  3. Javascript docs
  4. 六、朴素贝叶斯案例分析
  5. Windows XP 瘦身提速优化技巧大全
  6. Symantec赛门铁克企业版本防火墙怎么防止勒索病毒Symantec赛门铁克关闭137,138,139,445端口​
  7. Android Camera模块(一)
  8. 一个aov网用邻接矩阵表示_图习题及参考答案
  9. 计算机英语二国家线,预测考研英语二国家线及如何通过
  10. 基于SNMP通过OID获取思科、锐捷、迈普等交换机的CPU、内存使用率