JavaScript 基础(3)
BOM
浏览器窗口尺寸
- 两个属性:
- innerWidth
- innnerHeight
- 共同点:包含滚动条的尺寸,除了Mac的Safari
浏览器弹出层
- alert(‘提示文本’)
- confirm(‘提示文本’)
- prompt(‘提示文本’)
- 共同点:阻断程序后续执行(js 是单线程)
浏览器的历史记录
1 | window.history.back() |
- 方法
- back()
- forward()
- go(整数) :负数是后退,0 是刷新当前页面,正整数前进
浏览器版本信息
window 的 navigator 成员,是一个对象,存储着浏览器的版本信息
1 | window.nevigator.userAgent |
- userAgent
- appName
- platform
浏览器常见事件
- onload
1
2
3window.onload = functio(){}
当所有资源加载完毕执行
放在head标签里面 - onscroll:滚动条滚动就触发
- onresize:可视窗口改变的时候触发,结合innerWidth和innerHeight
卷去的高度和宽度
- 高度
- document.documentElement.scrollTop:必须有Document标签
- document.body.scrollTop:必须没有Document标签
- 兼容写法
- 宽度
- document.documentElement.scrollLeft
- document.body.scrollLeft
- 兼容写法
滚动到坐标
1 | 1. window.scrollTo(横坐标,纵坐标) // 两个参数 |
让浏览器自己滚动到顶部
DOM
获取DOM元素
- 非常规标签
- document.documentElement
- document.head
- document.body
- 常规标签
- getElementById()
查找范围:documenst或一个元素,返回一个元素或null - getElementsByTagName()
返回值:一个伪数组或空的伪数组 - getElementsByClassName()
返回值:一个伪数组 - getElemensByName()
- querySelector(‘选择器’)
返回值:css里面找到的第一个内容或null - querySelectorAll(‘选择器’)
返回值:一个伪数组或空的
操作元素属性
- 元素属性:原生属性、自定义属性、H5自定义属性(data-xxx)
- 原生属性:
读取值:元素.属性名
设置值:元素.属性名 = 值 - 自定义属性:不能点操作
- getAttribute(‘属性名’)
- setAttribute(‘属性名’, ‘值’)
- removeAttribute(‘属性名’)
- 不管设置什么数据类型,打印的类型都是string
- H5 自定义属性:
每个元素都有一个属性dataset,里面包含了所有H5 自定义属性;key 是除了 data- 外的内容叫名字,value 是值。操作:元素.dataset.key - 操作元素类名
- 设置、修改类名:元素.className = “类名”
- 追加类名:新类名前加空格
- 删除:字符切割,再写一遍
- H5 方式操作:
- 有一个属性:classList
- 方法:add(): div.classList.add(‘新类名’)
- 其他方法:remove() toggle()
操作文本内容
- innerHTML
- innerText
- value
操作元素样式
- 获取行内样式:
元素.style,获取到一个对象,包含所有的可设置样式。 - 获取非行内样式:
- window.getComputedStyle()方法,返回值:一个对象,可以访问里面的对象
- currentStyle 属性 IE低版本
- 当使用点语法时候,带中划线的样式要转化成驼峰的方式或数组关联法
- JS不能操作HTML文件和方CSS文件
DOM 节点
元素节点、属性节点、文本节点、注释节点
获取节点
- childNodes: 元素.childNodes,元素的所有子节点
- children: 元素的所有子元素节点
- firstChild: 元素的第一个节点
- firstElementChild: 元素的第一个子元素节点
- lastChild
- lastElementChild
- previousSibling: 元素的上一个兄弟节点
- previousElementSibing: 元素的上一个兄弟元素节点
- nextSibling: 元素的下一个兄弟节点
- nextElementSibling: 元素的下一个兄弟元素节点
- parentNode: 元素的父节点
- parentElement: 元素的父元素节点
- attributes: 该元素的所有属性节点
节点属性
描述该节点的信息
- nodeType:一种节点的编号
- nodeName:节点名称
- nodeValue:节点的值
创建节点
- createElement(‘便签名’): 返回一个元素节点
- createTextNode(‘文本内容’):返回一个文本节点,不是字符串
- createComment(‘注释内容’)
- createAttribute(‘属性名’): 返回一个属性节点,可以把它加到元素上
插入节点
- appendChild(): 父节点.appendChild(子节点),放在最后一个子节点的位置
- insertBefore()
删除节点
- removeChild(): 父节点.removeChild(子节点)
- remove(): 节点.remove(),把自己移出父节点
替换节点
- replaceChild(): 父节点.replaceChild(新节点,旧节点)
克隆节点
- cloneNode(): 节点.cloneNode(布尔值),默认是false 不克隆后代节点。返回一个克隆好的节点