「写在前面」
本文为 b 站黑马程序员 pink 老师 JavaScript 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容:
1. JavaScript 学习笔记(Day1)
2. JavaScript 学习笔记(Day2)
3. JavaScript 学习笔记(Day3)
4. JavaScript 学习笔记(Day4)
5. JavaScript 学习笔记(Day5)
P78:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=78
P79:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=79
变量声明时,用 let 还是 const?
建议:有了变量先给 const,如果发现它后面是要被修改的,再改为 let
P80:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=80
DOM(Document Object Model——文档对象模型)是用来呈现以及与任意 HTML 或 XML文档交互的 API
DOM 是浏览器提供的一套专门用来 操作网页内容 的功能
DOM 作用:开发网页内容特效和实现用户交互
DOM树是什么:
<body>
<div>123div>
<script>
const div = document.querySelector('div')
console.dir(div) // dom 对象
script>
body>
P81:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=81
1. 选择匹配的第一个元素
语法:
document.querySelector('css选择器')
参数:
返回值:
2. 选择匹配的多个元素
语法:
document.querySelectorAll('css选择器')
参数:
返回值:
得到的是一个伪数组:
想要得到里面的每一个对象,则需要遍历(for)的方式获得。
哪怕只有一个元素,通过querySelectAll() 获取过来的也是一个伪数组,里面只有一个元素而已
<body>
<div class="box">123div>
<p id="nav">导航栏p>
<ul>
<li>测试1li>
<li>测试2li>
<li>测试3li>
ul>
<script>
// 1. 获取匹配的第一个元素
const box = document.querySelector('div')
const box = document.querySelector('.box')
const nav = document.querySelector('#nav')
const li = document.querySelector('ul li:first-child')
// 2. 选择所有的小li
const lis = document.querySelectorAll('ul li')
for (let i = 0; i < lis.length; i++){
console.log(lis[i]) // 输出每一个小li对象
}
script>
body>
// 根据id获取一个元素
document.getElementById('nav')
// 根据标签获取一类元素,获取页面所有div
document.getElementsByTagName('div')
// 根据类名获取元素,获取页面所有类名为w的
document.getElementsByClassName('w')
P82:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=82
1. 元素 .innerText 属性
2. 元素 .innerHTML 属性
<div class="box">我是文字的内容div>
<script>
// 获取元素
const box = document.querySelector('.box')
// 获取标签内部的文字
console.log(box.innerText)
// 修改文字内容,不解析标签
box.innerText = '我是一个盒子'
// 修改文字内容,解析标签
box.innerHTML = '我是一个盒子'
script>
</body>
P83:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=83
语法:对象.属性 = 值
<body>
<img src="./images/1.webp" alt="">
<script>
// 1. 获取图片元素
const img = document.querySelector('img')
// 2. 修改图片对象的属性
img.src = './images/2.webp'
img.title = 'pink老师的艺术照'
script>
body>
P84:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=84
1.通过 style 属性操作CSS
语法:对象.style.样式属性 = 值
<body>
<div class="box">div>
<script>
// 1.获取元素
const box = document.querySelector('.box')
// 2.修改样式属性 对象.styLe.样式属性 = '值' 别忘了跟单位
box.style.width = '300px'
// 多组单词的采取 小驼峰命名法
box.style.backgroundColor = 'hotpink'
box.style.border = '2px solid blue'
box.style.borderTop = '2px solid red'
script>
body>
2. 操作类名(className) 操作CSS
P85:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=85
如果修改的样式比较多,直接通过style属性修改比较繁琐,我们可以通过借助于css类名的形式。
语法:
// active 是一个css类名
元素.className = 'active'
注意:
例:
<head>
<style>
.nav {
color: red;
}
.box {
width: 300px;
height: 300px;
}
style>
head>
<body>
<div class="nav">div>
<script>
// 1. 获取元素
const div = document.quertSelector('div')
// 2. 添加类名
div.className = 'nav box'
script>
body>
3. 通过 classList 操作类控制CSS
P86:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=86
为了解决className 容易覆盖以前的类名,我们可以通过classList方式追加和删除类名
语法:
// 追加一个类
元素.classList.add('类名')
// 删除一个类
元素.classList.remove('类名')
// 切换一个类
元素.classList.toggle('类名')
例:
<head>
<style>
.box {
width: 300px;
height: 300px;
color: #333;
}
.active {
color: red;
background-color: pink;
}
style>
head>
<body>
<div class="box">文字div>
<script>
// 1. 获取元素
const box = document.quertSelector('.box')
// 2. 通过classList添加样式,类名不加点,并且是字符串
// add() 追加类
box.classList.add('active')
// remove() 删除类
box.classList.remove('box')
// toggle() 切换类,有就删掉,没有就加上
box.classList.toggle('active')
script>
body>
随机轮播图案例:
P87:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=87
P88:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=88
P89:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=89
DOM对象.属性名
DOM对象.属性名 = 新值
例:
<body>
<input type="text" value="电脑">
<script>
// 1. 获取元素
const uname = document.quertSelector('input')
// 2. 获表单里面的值
console.log(uname.value) // 电脑
console.log(uname.type) // text
// 3. 设置表单的值
uname.value = '我要买电脑'
uname.type = 'password'
script>
body>
<body>
<input type="checkbox">
<script>
// 1. 获取元素
const ipt = document.quertSelector('input')
// 2. 修改属性
ipt.checked = true // 只接收布尔值,不用字符串
script>
body>
P90:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=90
例:
<body>
<div data-id="1" data-spm="不知道">1div>
<div data-id="2">2div>
<div data-id="3">3div>
<script>
const one = document.querySelector('div')
console.log(one.dataset) // {id: '1', spm: '不知道'}
console.log(one.dataset.id) // 1
script>
body>
P91:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=91
定时器函数可以开启和关闭定时器
1. 开启定时器
语法:
setInterval(函数, 间隔时间)
例:
<script>
setInterval(function () {
console.log('一秒执行一次')
}, 1000)
script>
2. 关闭定时器
语法:
let 变量名 = setInterval(函数, 间隔时间)
clearInterval(变量名)
例:
function fn() {
console.log('一秒执行一次')
}
// setInterval(函数, 间隔时间),函数名不用加小括号
let n = setInterval(fn, 1000)
// 关闭定时器
clearInterval(n)
P92:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=92
P93:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=93
本文由 mdnice 多平台发布