一、BOM&DOM
1.BOM
BOM 是浏览器对象模型,就可以理解成是当前浏览器打开的窗口
window对象 就是 BOM
通过window对象 可以操作浏览器本身 它里面提供了一些操作当前浏览器的对象和方法
1.1. 各种弹框:
window.alert('消息框')
window.prompt('输入框')
window.confirm('确认框')
1.2.定时器
setTimeout定时器,在指定的毫秒后执行一次
1.3.open方法,用于打开新的窗口
1.4.close方法,用于关闭当前窗口
1.5.数据转换方法
1.6. 常用属性
location属性:
location是window对象的属性,该属性用于设置网页的地址栏
location.href属性 表示跳转,当前浏览器的地址栏发生了跳转
其实超链接标签的内部就是对location.href属性的封装
window.location.href = 'http://baidu.com'
location.reload()方法 表示刷新当前地址栏(刷新当前窗口)
window.location.reload()
history属性:
history是window对象的属性,该属性用于设置网页的浏览历史记录
forward()前进
window.history.forward()
back()后退
window.history.back()
go()方法,既可以实现前进,也可以实现后退
window.history.go(1) //前进一次
window.history.go(3) //前进三次
window.history.go(-1) //后退一次
window.history.go(-3) //后退三次
2. DOM
DOM 文档对象模型,就是当前网页里面的所有内容。
因为网页是在浏览器中显示的,整个浏览器是BOM,所以DOM其实是BOM的一部分
BOM 就是 window对象 DOM 就是 document对象
使用DOM获取网页元素:
1.如果该元素,是网页的必备元素,而且只能有一个,可以通过document对象直接获取。
比如:head,title,body
document.body.style.border = "1px solid #ccc"
document.title = 'helloworld'
2.更多的时候,我要需要获取网页中的指定元素,这就需要专门的方法来获取了。
getElementById()方法,根据元素的id属性值来获取指定的元素。
注意:如果网页中id属性值重复,只获取第一个。
getElementsByTagName()方法,根据元素的标签名获取所有该元素。
getElementsByClassName()方法,根据元素的类选择器名称获取所有该元素。
getElementsByName()方法,根据元素的name属性值获取所有该元素。
querySelector()方法,根据选择器的名称返回元素,如果有多个元素,只返回第一个元素。
querySelectorAll()方法,根据选择器的名称返回所有的元素。
注意:querySelectorAll()方法,返回的是集合对象,不是数组对象。可以利用展开运算符,将集合对象转为数组对象。
转为数组对象后,就可以使用数组相关的方法了。
let divs2 = [...divs]
querySelector()和querySelectorAll()方法里面也可以写所有的css选择器。
3. 操作DOM元素的内容和样式
操作DOM的样式,有多种方式:
通过style属性直接设置
通过className属性设置类选择器
也可以通过classList属性添加多个类选择器
操作DOM的内容:
innerText属性,用于获取 和 操作 DOM的文本内容。innerText属性设置内容时,不能识别html标签,会将html标签以文本的形式呈现
innerHTML属性,用于获取 和 操作 DOM的HTML内容。innerHTML属性设置内容时,能够识别html标签
4. 操作DOM元素的属性
获取和设置标签自带的属性(原生属性),直接点
let src = img.src //src是图片标签的原生属性
获取和设置标签自定义的属性,需要通过getAttribute()和setAttribute()方法
setAttribute('属性名称','属性值')方法,设置元素的属性值,需要传两个参数(属性名和属性值)
getAttribute('属性名称')方法,获取元素的属性值,只需要传一个参数(属性名)
5. 创建和删除DOM元素
createElement()方法,用于创建DOM元素
appendChild()方法,用于在当前DOM元素中添加子元素
删除元素有两种写法:
自删 remove()方法,是元素删除自己
通过父级删除子级 removeChild()方法,是删除元素里面指定的子元素
补充1:onclick是点击事件,on表示当,click表示点击
补充2:parentElement和parentNode属性,返回父级元素