扩展:null 、 undefined 、 ‘’、 NaN、false、0为假
1、document.querySelector('CSS选择器‘’):
(1)只能获取返回第一个元素
获取不到的结果是null
(2)css选择器是一个字符串,所以要用引号包含起来
(3)可以修改里面的元素样式
把document当做对象
query:获取 \查询 selector:选择器
2、想要获取到指定标签的全部元素,可以用queryselectorAll
(1)返回的是一个元素集合
始终返回的是伪数组-像数组:
a、有索引号、有长度
b、但是无法使用数组的方法,例如push()
(2)不可以对里面的内容直接修改
(3)可以结合for循环遍历,给每一项设置
例如:
let lis = document.querySelectorAll('.box li')
for (let i = 0; i < lis.length; i++) {
lis[i].innerHTML = '我是修改的li';
}
3、对象.innerText属性
使用:等号赋值即可 = ‘ ’ (变量不用带引号)
不能识别解析标签
4、对象.innerHTML属性
使用:等号赋值即可 = ‘ ’ (建议使用单引号''和反引号``)
可以可以!!识别解析标签
例如:div.innerHTML = '<span>是我们的
回忆~</span>'
!!!注意:innerText 和innerHTML设置内容时,会覆盖原有的内容
解决方法:用加号拼接(把原有的内容也带上)
divobj.innerHTML += '哈哈哈哈';
5、操作元素的属性
(1)更改元素属性值
(2)元素.属性 = ‘属性值’
例如:imgObj.src = 'images/1.jpg'
6、使用className属性进行操作(增、改)类名
(1)元素.className = '类名'
(2)js中class是关键字,所以js中得用className表示类名
(3)有覆盖问题
7、DOM元素.classList 操作类名修改样式
不存在覆盖问题
以下的是方法:
(1)classList.add() 添加类名 没有覆盖问题 追加类名
(2)classList.remove() 移除类名
(3)classList.toggle() 切换类名
(如果有类名,会移除该类名;
没有该类名,就添加该类名)
(4)classList.contains()判断是否有指定的类名,有就返回true,没有就返回false
8、记得区分属性和方法,不要混淆
className 是属性:= ''
classList.add('...')是方法,不要写等号,写括号
注意:属性用 =
方法用()
9、对象.style.样式属性名 = 值
(1)本质是:设置行内样式
(2)注意:
1、样式属性名要遵循驼峰式写法
2、高宽之类的不要落下单位px
例如:divobj.style.backgroundColor = 'pink';
注意一个细节:
backgroundImage写其路径属性时,引号要带url()哦
10、body、head、title标签可以直接获取
document.body
11、获取html标签:
document.documentElement
12、Boolean类型的属性(disable、checked、selected)
(1)当设置的值不是布尔类型(true、false),底层进行隐私转换的
以下代码是禁用效果
(2)例如:input1.disabled = 'false'//'false'是字符串,会被隐式转换为true
(3)
inpt1.disabled = true//被禁用
inpt1.disabled = false//不被禁用
13、开启定时器
setInterval(函数名/函数,间隔时间)
setInterval(fn, 1000)//函数不要加()调用,定时器会自动调用
(1)函数:function 函数名(){}
(2)间隔时间:单位是毫秒ms 1000ms=1s
a、函数调用其他函数时,不用加括号
例如:
1、setInterval(fn,1000)每隔1秒就会回来执行函数
2、setInterval(fn(),1000)这个是错的,写了会立即执行调用,没有了定时效果
14、关闭定时器
clearInterval(定时器id)
定时器id在开启定时器的时候返回给了setInterval,可以用一个变量存储这个返回id
例如:
let timerid1 = setInterval(fn, 1000)
clearInterval(timerid1)