【前端】JavaScript —— WebAPI
创始人
2024-04-07 07:36:01
JavaEE传送门

JavaEE

【前端】JavaScript —— JS的组成与基本语法

【前端】JavaScript —— JS的基本语法之数组, 函数…


目录

  • WebAPI
    • DOM
    • 获取元素
    • 事件
    • 操作元素
      • 获取/ 修改元素内容
      • 获取/ 修改元素属性
      • 获取/ 修改表单元素属性
      • 获取/ 修改样式属性
    • 操作节点
      • 新增节点
      • 删除节点
    • 案例
      • 猜数字


WebAPI

前面学习的 JS 分成三个大的部分

  • ECMAScript: 基础语法部分
  • DOM API: 操作页面结构
  • BOM API: 操作浏览器

WebAPI 就包含了 DOM + BOM.

WebAPI 概念是非常广泛的, BOM 和 DOM 只是其中的一部分, 还有一些 操作多媒体的 API, 操作画板 canvas, api …


DOM

文档对象模型

  • 文档: html
  • 对象: JS 中的对象

DOM 合在一起, 就是把 HTML 页面上的每个标签, 都对应成 JS 中的一个对象, 通过这个对象就能获取/ 修改到标签的内容和属性.

DOM API 一共有很多, 本篇文章只介绍其中的一小部分


获取元素

进行后续操作的前提, 需要先把页面上的某个元素, 先拿到.

let div = document.querySelector('div');
  • document: 浏览器提供的一个全局对象, 就表示当前的页面. DOM API 基本上都是这个 document 对象的方法.
  • querySelector 参数就是一个 CSS 选择器, 可以使用前面学过的任意一种选择器, 来选中元素

要想看到 div 的对象形态就要使用, dir. dir 方法可以把元素以对象形态打印出来

console.dir(div);

我们看下面这段代码:

hello1
hello2
hello3

  • 如果选择结果不唯一, 此时标签选择器, 得到的结果只是第一个元素

  • 如果像把多个元素都获取到, 可以使用 querySelectorAll 来完成, 只不过这里的返回值, 是一个数组.

    let divs = document.querySelectorAll('div');
    

事件

和用户操作密切相关

  • 用户在浏览器上, 点击鼠标. (左键点击鼠标, 左键双击鼠标, 右键点击鼠标). 鼠标移动, 按下某个键盘按键, 滚动窗口位置…
  • 用户针对浏览器进行的操作, 都会对浏览器产生对应的 “事件
  • 由于事件是和用户操作相关的, 我们无法预知事件何时到来.
  • 针对这些可能的用户操作, 能做的事情就是提前做好准备工作.
  • 因此, 浏览器就会根据用户操作产生对应的事件, 再有提前准备好的用户代码针对不同的事件进行不同的处理
hello

这时我们点击页面中的 hello , 控制台上就会出现 ‘按下鼠标’ 字样. 多点几次就会出现多次. (chrome 控制台会默认把相同的日志给合并成一个)

可在设置中更改

还有很多关于其他的事件

div.onmousemove //鼠标移动
div.onmouseenter //鼠标进来了
div.onmouseleave //鼠标出去了
.....

事件涉及三个核心要素:

  1. 事件源: 事件是哪个元素发出来的
  2. 事件类型: 点击, 移动, 按下键盘, 调整窗口…
  3. 事件处理程序: 通过哪个函数/ 代码来进行操作

操作元素

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

获取/ 修改元素内容

开始标签和结束标签之间的内容.

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

hello

还可以通过给这个属性赋值, 来起到修改的作用

hello

# 注意 #

  • 这里赋值, 不仅仅能够赋值文本, 还可以赋值一个 html 片段.
  • 还可以使用 innerText 来进行操作, 但是他只能得到文本, 不能得到 html 标签, 且是非标准的 (不建议使用)

获取/ 修改元素属性

修改的就是开始标签里面写的那些键值对.



不只是 img 标签, 其他所有标签的属性, 都是通过类似的方式来进行操作的.


获取/ 修改表单元素属性

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

  • value: input 的值.
  • disabled: 禁用
  • checked: 复选框会使用
  • selected: 下拉框会使用
  • type: input 的类型(文本, 密码, 按钮, 文件等)

首先, 我们先看这样一段代码



我们通过 innerHTML 拿不到其中的内容, 因为 input 标签是一个单标签, 通过 innerHTML 获取标签内部的子标签, 是没有的.



案例1: 显示密码 (type)



案例2: 点击计数 (value)

  1. input 标签中存整数
  2. 一个按钮一点, 数字就减少1
  3. 一个按钮一点, 数字就增加1


# 注意 #

  • 此处的相加, 并非是算数相加,而是字符串相加了.

  • input.value 获得的是一个字符串. 所以, 需要先把字符串转成整数

    Java 如何转整数? Integer.parselnt

    JS 里也有一个 parseInt, 是一个全局函数(不仅仅是针对字符串操作, 也能针对其他类型操作)

    let oldValue = parseInt(input.value);
    

这时再点击’ +, - ’ 就是正常的数字加减了.

  • 除此之外, 还有一个更简单的办法, 根据 JS 弱类型的特点, 字符串不能去正号, 就会进行隐式类型转换.

    let oldValue = +input.value;
    

案例3: 操作复选框 (checked)

复选框的选择状态, 可以通过 checked 属性来进行设置

请选择Gujiu的老婆

02
木之本樱
樱岛麻衣
Gujiu全都要

这时我们点击 ‘Gujiu全都要’ 选项 ,就会把前三项全选


获取/ 修改样式属性

行内样式

通过 style 属性, 嵌入到 html 里面的样式

Gujiu🌺

我们现在想: 每次点击, 把文字大小方法 10 个像素

Gujiu🌺

# 注意 #

  • 咱们平时开发的时候, 行内样式其实用的不算多.

  • 行内样式, 如果东西少还好, 如果东西多, 就容易搞乱.

  • 更常用的是通过选择器的方式选中元素,再指定样式

选择器

其中最常用的就是类选择器, 因此就可以通过修改元素 class 属性, 实现修改样式的效果

案例: 夜间模式

  • 开灯时: 把背景设成浅色, 文字设成深色
  • 关灯时: 把背景设置成深色, 文字设成浅色
这是一大段话, Lorem ipsum dolor sit amet consectetur adipisicing elit. Deleniti explicabo laudantium quia, maiores quod facilis minima a iste amet ab praesentium tempore quisquam atque impedit fuga delectus architecto iure sapiente!Lorem ipsum dolor sit amet consectetur adipisicing elit. Deleniti explicabo laudantium quia, maiores quod facilis minima a iste amet ab praesentium tempore quisquam atque impedit fuga delectus architecto iure sapiente!Lorem ipsum dolor sit amet consectetur adipisicing elit. Deleniti explicabo laudantium quia, maiores quod facilis minima a iste amet ab praesentium tempore quisquam atque impedit fuga delectus architecto iure sapiente!Lorem ipsum dolor sit amet consectetur adipisicing elit. Deleniti explicabo laudantium quia, maiores quod facilis minima a iste amet ab praesentium tempore quisquam atque impedit fuga delectus architecto iure sapiente!Lorem ipsum dolor sit amet consectetur adipisicing elit. Deleniti explicabo laudantium quia, maiores quod facilis minima a iste amet ab praesentium tempore quisquam atque impedit fuga delectus architecto iure sapiente!

这时我们每次单机这段文字, 都会切换效果.


操作节点

新增节点

分成两个步骤

  1. 创建元素节点 (createElement)

  2. 把元素节点插入到 dom 树中. (appendChild)

嘿嘿
哈哈


删除节点

使用 removeChild 删除子节点

oldChild = element.removeChild(child);

案例

猜数字

  • 随机生成 1 - 100 间的随机数, 让玩家猜
  • 每次玩家猜一个数组, 就提示高了/ 低了/ 猜对了


猜数字

请输入要猜的数字:

已经猜的次数: 0
结果是:

🌷(( ◞•̀д•́)◞⚔◟(•̀д•́◟ ))🌷
以上就是今天要讲的内容了,希望对大家有所帮助,如果有问题欢迎评论指出,会积极改正!!

在这里插入图片描述
加粗样式

这里是Gujiu吖!!感谢你看到这里🌬
祝今天的你也
开心满怀,笑容常在。

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...