前面学习的 JS 分成三个大的部分
WebAPI 就包含了 DOM + BOM.
API 是一个更广义的概念. 而 WebAPI 是一个更具体的概念, 特指 DOM+BOM
所谓的 API 本质上就是一些现成的函数/对象, 让程序猿拿来就用, 方便开发.
相当于一个工具箱. 只不过程序猿用的工具箱数目繁多, 功能复杂.
点击这里
可以在搜索引擎中按照 “MDN + API 关键字” 的方式搜索, 也能快速找到需要的 API 文档.
DOM 全称为 Document Object Model.
W3C 标准给我们提供了一系列的函数, 让我们可以操作:
一个页面的结构是一个树形结构, 称为 DOM 树.
DOM 树结构形如:
重要概念:
这些文档等概念在 JS 代码中就对应一个个的对象.
所以才叫 “文档对象模型” .
JS获取元素有很多种方式,此处只介绍一种最强大,最通用的方式。
querySelector 是 document的方法,document 是一个页面中内置的全局对象.(由浏览器提供出来的)页面加载成功,显示出来了,此时 document 就有了。
此时,就可以使用 elem 来表示这个h1标签,同时可以通过 elem 获取到 h1 标签中的属性,也可以用来修改了。
要想选多个元素,直接 querySelectorAll 即可,用法和 querySelector 一样。
用户针对浏览器页面的每个动作都可以视为是 “事件”。
鼠标移动,鼠标点击,鼠标双击,鼠标拖动,键盘按键,浏览器窗口改变,浏览器位置改变…
JS 要构建动态页面, 就需要感知到用户的行为.
用户对于页面的一些操作(点击, 选择, 修改等) 操作都会在浏览器中产生一个个事件, 被 JS 获取到, 从而进行更复杂的交互操作
浏览器就是一个哨兵, 在侦查敌情(用户行为). 一旦用户有反应(触发具体动作), 哨兵就会点燃烽火台的狼烟(事件), 后方就可以根据狼烟来决定下一步的对敌策略.
例如上述代码:h1 就是事件源,onclick 就是事件类型:点击事件,alert(‘hello’) 就是事件处理程序。
上述代码是把 JS 嵌入到 HTML 中了,如果 JS 代码简单,那还好,如果 JS 代码复杂,直接嵌入的方式就不太好。
本来 onclick 是空。这样的赋值,就让 onclick 有东西了,用户点击元素的时候,浏览器会自动执行到 onclick 对应的方法
但是此处报错了:
不能给null设置 onclick 属性
elem 成了 null,自然不能 onclick,然后 elem 为啥是 null? 说明上述 querySelector 没查到结果,检查选择器写的对不对,一检查发现选择器不应该为 . ,发现它是 id,应该是 #。
在这里打印的结果却是在控制台里面而不是在页面,那我们如何在页面打印呢?
当我们在刷新页面的时候会出现如下画面
多次点击后
、
设计一个自增的计数器,每次点击按钮都会自增加一
每次点击都会自增 +1
显示隐藏密码:
行内样式操作
element.style.[属性名] = [属性值];
相当于是给元素加了内联样式(style属性来表示的样式)
此处的单位非常关键,如果不写单位,光写个100,大概率是不生效的。
点击前:
点击后:
-提出来之后,这里的属性名,就不是带–的了,而是变成了驼峰。
-在js 里是不能作为变量名的,css里其实有很多的属性是这种的。
类名样式操作
element.className = [CSS 类名];
直接指定某个元素应用上某个css类名.
日间模式 夜间模式 相互切换:
点击前 (日间模式):
点击后 (夜间模式):
操作节点,这个是针对页面上的元素进行增删
使用 createElement 方法来创建一个元素
先确定要把新元素放到哪个父节点下,根据父节点,使用 appendChild 方法。
另外还有一个 insertBefore 也能实现插入~~插入到某个子元素的前面.
先确定要删除元素的父节点,然后再确定要删除的节点
删除前:
删除后:
先生成一个 1-100 的随机正数,让用户输入一个要猜的数字,程序来提示,是猜的高了,低了,对了。
由于 JS 的 Math.random()生成的随机数,是一个[0,1)之间的小数,那么我么需要将 N*100+1 即可得到区域为 [1,101),再向下取整即可得到 [0,100]的区域。