WEBAPI

WEb API是浏览器提供的一套操作浏览器功能,和页面元素的API,现阶段我们主要针对于浏览器讲解常用的API,主要针对浏览器做交互效果

DOM

文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口。
可以通过这些接口来改变网页的neritic,结构和样式

1.API是为我们程序员提供的一个接口,帮助我们实现某种功能,我们会使用就可以了,不必纠结内部做如何实现
2.WbAP1主要是针对于浏览器提供的接口,主要针对于浏览器做交互效果。
3.Veb API一般都有输入和输出(函数的传参和返回值),Web API很多都是方法(函数)

获取元素

1.通过id获取
2.通过标签获取
3.通过类名
4.通过选择器选择

<!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>Document</title></head><body><div class="box">盒子</div><div class="box">盒子</div><div id="time">2020.06.07<ul><li>1234</li></ul></div><ul id="three"><li>ggzx</li><li>ggzx</li><li>ggzx</li><li>ggzx</li></ul><script type="text/javascript">console.log('1.通过id获取元素对象')const time =  document.getElementById('time')console.log(time)console.log(typeof time)console.log('..打印我们返回的元素对象,更好的查看里面的属性和方法')console.dir(time)console.log('2.通过标签名,返回带有该标签的集合,以为数组的形式存储')const list = document.getElementsByTagName('li')console.log(list)console.log(list[0])console.log('..得到的元素是动态的,下面通过元素修改内容,在重新输出,证明元素是动态的')for (let i = 0; i < list.length; i++) {console.log("遍历li第"+i+"个元素",list[i])}console.log('3.结合使用1,2种方法,获取某个id标签内的ul的li属性')const ul = document.getElementById('time')const li1 = ul.getElementsByTagName('li')console.log(li1)console.log('4.HTML5新增方法获取')const boxes =  document.getElementsByClassName('box')console.log(boxes)console.log('5.选择器返回指定选择器的第一个元素对象,切记里面的选择器需要加符号')const firstBox = document.querySelector('.box')const id = document.querySelector('#time')const firstLi = document.querySelector('li')console.log('querySelectAll,返回指定选择器的所有对象')console.log('6.获取body和html,注意html')const body = document.bodyconst html = document.documentElementconsole.log(body,html)</script></body>
</html>

事件概述JavaScript使我们有能力创建动态页面,而事件是可以被JavaScript侦测到的行为。简单理解:触发–响应机制。

网页中的每个元素都可以产生某些可以触发JavaScript的事件,例如,我们可以在用户点击某按钮时产生一个
事件,然后去执行某些操作。

事件:
事件源:事件被触发的回想,例如按钮
获取事件源:document.getElementById(‘btn’)
事件类型:如何触发,什么事件,比如鼠标点击onclick,鼠标经过,或者是键盘按下
btn.onclick = function (){
alert(‘点击按钮’)
}
事件处理程序:通过一个函
数赋值的方式

执行事件的步骤
1.获取事件源
2.注册事件(绑定事件)
3.添加事件处理程序(采取函数赋值形式)

操作元素

修改网页内容、结构和样式

案例:点击按钮,修改div的内容为日期

<html>
<!--32-->
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head>
<body><button>显示当前系统事件</button><div>11 </div><script>const btn = document.querySelector('button')const div = document.querySelector('div')//获取元素,注册事件btn.onclick = function (){div.innerText = getDate()}function getDate() {const date = new Date();const year = date.getFullYear()const month = date.getMonth()+1const dates = date.getDate()const arr = ['星期一','星期二','星期三','星期四','星期五','星期六','星期七']const day = date.getDay()return year+'-'+month+''+dates+' '+arr[day]}</script>
</body>
</html>

#### 获取节点内容
注意:
innerTEXT显示的标签内容,该内容不包括换行和空格
innerHTML包括着该节点内部的内容以及标签内容

<html>
<!--32-->
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head>
<body><div>11</div><strong>加粗字体</strong><p>ggzx</p><script>
//        使用innerText和innerHtml获取文字const div = document.querySelector('div')div.innerText = '<strong>加粗字体</strong>'//现在就会识别html了,w3c标准div.innerHtml = '<strong>加粗字体</strong>'//使用innerText和innerHtml获取文字,htmlconst p = document.querySelector('p')console.log(p.innerText)console.log(p.innerHTML)</script>
</body>
</html>

修改元素属性

1.innerText innerHTML
2.src,href
3.id alt title
案例:点击按钮切换img中的src:图片源

<html>
<!--32-->
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head>
<body><button id="ldh">刘德华</button><button id="zxy">张学友</button><br><img src="imges/ldh.jpg"/><script>const ldh = document.getElementById('ldh')const zxy = document.getElementById('zxy')const img = document.querySelector('img')//    注册事件zxy.onclick = function (){img.src = 'imges/ldh.jpg'}ldh.onclick = function (){img.src = 'imges/zxy.jpg'}</script>
</body>
</html>

操控表单标签的属性

type value checked selected disabled
案例:登录页面的密码框,可以显示密码,可以隐藏密码

<html>
<!--32-->
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>.box{width: 400px;margin:100px auto;}.box input{height:45px;line-height:45px;width:500px;margin:0 auto;font-size:18px;padding:0;vertical-align:top;border:0;outline:none;}.box button{width:130px;height:47px;margin:0;padding:0;outline:none;border: 0 none;}</style>
</head>
<body><div class="box"><input type="password" placeholder="在此处输入密码" name="" id=""><button>显示</button></div>
<script>const btn = document.querySelector('button')const input = document.querySelector('input')btn.onclick = function () {if (btn.innerText === '显示'){input.type = 'text'btn.innerText = '关闭'}else {input.type = 'password'btn.innerText = '显示'}}
</script>
</body>
</html>


修改元素样式大小颜色位置等

1.element.style 行内样式操作
2.element.className 类名样式操作
注意:
1.样式是驼峰命名法,即style标签内font-size,在使用时候需要用.fontSize
2.JS修改style产生的是行内样式,css权重较高,能覆盖内嵌样式

<html>
<!--32-->
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>div{height: 100px;width: 100px;background-color: black;}</style>
</head>
<body><div></div><button>修改颜色</button>
<script>const box = document.querySelector('div')const btn = document.querySelector('button')console.log(btn)console.log(box)btn.onclick = function () {console.log('点击了btn')box.style.backgroundColor = 'purple'}
</script>
</body>
</html>

注意:这里直接修改sytle,style名字需要是驼峰名字

webAPI第一弹---JS相关推荐

  1. 自学JavaScript第一天- JS 基础

    自学JavaScript第一天- JS 基础 JS 写在哪里 注释 行内 js 内部 js 外部 js JS 基础语法 语句 大小写 代码块 折行 变量 声明 var .let.const 及作用域 ...

  2. 2023春节祝福系列第一弹(下)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

    2023春节祝福系列第一弹(下) (放飞祈福孔明灯,祝福大家身体健康) (附完整源代码及资源免费下载) 目录 四.画一朵真实的祥云 (1).画一个渐变的白色径向渐变背景 (2).应用一个SVG feT ...

  3. ***测试第一弹:信息刺探

    ***第一弹刺探信息:freebuf 1,分析目标网站内容及功能 (1) 首先确定网站采用何种语言编写.或者是否有混用的情况.此处可以通过查看网站源文件,观察网站链接,捕获提交请求等方式获取. (2) ...

  4. 渗透测试第一弹:信息刺探

    渗透第一弹刺探信息:freebuf 1,分析目标网站内容及功能 (1) 首先确定网站采用何种语言编写.或者是否有混用的情况.此处可以通过查看网站源文件,观察网站链接,捕获提交请求等方式获取. (2)  ...

  5. 青瓷引擎打造HTML5游戏第一弹——《神奇的六边形》Part 4

    近期出现一款魔性的消除类HTML5游戏<神奇的六边形>,今天我们一起来看看如何通过开源免费的青瓷引擎(www.zuoyouxi.com)来实现这款游戏. (点击图片可进入游戏体验) 因内容 ...

  6. 2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

    2023春节祝福系列第一弹(上) (放飞祈福孔明灯,祝福大家身体健康) (附完整源代码及资源免费下载) 目录 一.前言 二.一片星光闪烁的旋转星空 (1).效果展示: (2).相关源代码 (3).语法 ...

  7. Selenium 抓取玩加赛事数据第一弹

    抓取玩加赛事的王者荣耀的相关数据第一弹--->战队基本信息 一.页面分析 1.战区分析 目前的玩加赛事王者荣耀页面,全球 和中国 的数据是完全一样的.所以抓取任务只涉及全球.后期更新任务应该考虑 ...

  8. 前端面试题整理——(第一弹 HTML和CSS)

    文章目录 前端面试题整理--(第一弹 HTML和CSS) 1. 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? 2. 每个HTML文件里开头都有个很重要的东西,Doctype,知道这是干什 ...

  9. SVG图形绘制入门第一弹

    IT入门的路超级漫长--任何时候都发现有完全没听过的东西,比如说下方--原来认为svg就是图片,想着也是跟Ps一样画出来的,现在知道了竟然是用代码写的--,这条路我不知道啥时候才能进步到幼儿园的级别! ...

最新文章

  1. 图论之tarjan缩点
  2. Maven项目Spring Boot启动
  3. 微生物生态学相关期刊2022年实时影响因子
  4. java性能优化权威指南_Java性能优化权威指南 PDF扫描[132MB]
  5. Centos7 配置静态ip地址
  6. ios给系统添加分类管理属性
  7. 对比MS Test与NUnit Test框架
  8. Java中按值传递与按引用传递的区别
  9. 【JDK】Mac版安装JDK并配置环境
  10. 软工网络15团队作业4——Alpha阶段敏捷冲刺之Scrum 冲刺博客(Day1)
  11. POJ1200 Crazy Search
  12. 数字媒体技术考点整理
  13. python编程入门第九讲_python 基础 19 习题9 讲解
  14. java的prefetch()_聊聊FluxFlatMap的concurrency及prefetch参数
  15. matlab 多子图_matlab 多子图的绘画
  16. mysql时间加10分钟_将MySQL日期时间格式添加10分钟?
  17. 如何导出、导入mysql数据
  18. ubuntu 编译android SDK错误处理
  19. 逆向练习--bugku love
  20. 拜日式精准引导词_拜日式引导词

热门文章

  1. U-Boot的移植U-Boot Practically Porting Guide(转)
  2. 树莓派科学小实验4B--06_AD温度传感器
  3. (手机版数据同步)财务注册公司工商服务类企业网站源码 公司注册财会类网站织梦模板
  4. 纯文本笔记软件Simplenote Mac
  5. CSS 如何提高权重?
  6. Redis完整笔记--狂神
  7. 一度智信:电商运营小知识!纯干货速来查看
  8. [读书]少年中国之精神
  9. HTML 制作九宫格
  10. 如何转换音频格式mp3,可以免费音频格式转换的软件