BOM &DOM

277 阅读3分钟

1、history:操作浏览器的历史记录

①back()后退一个页面

②forward() 前进一个页面

③go()前进或后退多个页面 :正数是前进;负数是后退;前进后退几个页面,就看数字是几.

2、location:操作地址栏url

①href:

设置完整的地址-location.href = 新地址

获取完整的地址-location.href

②、search:

设置地址栏参数-location.search = ?键=值&键=值、

获取地址栏参数-location.search

③、hash: 设置锚点-location.hash = #单词

获取锚点-location.hash

3、事件:

①window.onload:当所有资源加载完成后,触发执行

②window.onresize:当浏览器窗口大小发生改变,触发执行

③window.onscroll:当浏览器卷去的距离发生改变,触发执行

4、方法:

① 定时器;

setInterval(函数, 毫秒数)-让函数每隔毫秒数,就执行一次,会不停的执行下去

setTimeout(函数, 毫秒数)-让函数延迟毫秒数执行一次,就这一次

② 打开新的标签页:window.open(url) ② 设置卷去距离:window.scrollTo(x, y) ③ 关闭窗口:window.close()

DOM

概念:document object model;文档对象模型-由对象组成的结构操作html文档

获取标签:

1、document.querySelector(css选择器):获取满足css选择器的第一个 标签-返回一个标签

2、document.querySelectorAll(css选择器):获取所有满足css选择器的标签-返回一个集合 3、document.getElementById()

4、document.getElementsByClassName()

5、document.getElementsByTagName()

6、document.getElementsByName()

获取html基本结构标签:

HTML : dcument.documentElement

body:document.body

head: document.head

网页标题 ;document.title 可获取标题/可设置标题

获取标签名:

标签.tagName

操作内容:

1、双标签:

文本内容:

设置: 标签.innerText = 值

获取: 标签.innerText

带标签的内容:

设置:标签.innerHTML = 值

获取:标签.innerHTML

2、表单:

设置:标签.value = 值

获取:标签.value

3、操作属性:

设置属性:标签.setAttribute(属性名, 值)

获取属性:标签.getAttribute(属性名)

删除属性:标签.removeAttribute(属性名)

4、样式操作:

获取样式:getComputedStyle(标签) -返回由所有css键值对组成的对象

设置样式:标签.style.css键 = 值 -设置到行内

5、类名操作:

直接操作class属性值:

标签.className = 值

标签.className

classList: add() -添加一个类名

remove() -删除一个类名

contains() -判断是否有这个类名

toggle() - 让类名在删除和添加之间切换

6、获取卷去的距离

有文档声明:document.documentElement.scrollTop

没有文档声明:document.body.scrollTop

兼容写法:

var t = document.documentElement.scrollTop || document.body.scrollTop

document.documentElement.scrollTop = document.body.scrollTop = 数字

7、短路运算:

使用逻辑运算符 && 和 || 给变量进行赋值

var 变量 = 值1 && 值2 :

如果左边为true,就会将右边的值赋值给变量

如果左边为false,就会将左边的值赋值给变量

var 变量 = 值1 || 值:

如果左边为true,就会将左边的值赋值给变量

如果左边为false,就会将右边的值赋值给变量

this在事件函数中,代表触发事件的标签 ··

8、节点操作:

① 创建标签:document.createElement(标签名)

//创建一个div
var div = document.createElement('div')

② 插入标签:

父.appendChild(标签) - 将标签插入到父标签的末尾

父.insertBefore(新的标签, 旧的子标签) - 将新标签添加到父标签中已经存在的某个子标签的前面

③ 替换标签:父.replaceChild(新, 旧)

④ 复制标签:标签.cloneNode(true)

⑤ 删除标签:

父.removeChild(子)

子.parentElement.removeChild(子)

⑥ 获取标签:

所有子: 父.children

第一个子: 父.firstElementChild

最后一个子: 父.lastElementChild

父: 子.parentElement

上一个兄弟: 标签.previousElementSibling

下一个兄弟: 标签.nextElementSibling

⑦ 标签大小:

带边框: 标签.offsetWidth/标签.offsetHeight

不带边框: 标签.clientWidth/标签.clientHeight

⑧ 标签位置:

标签.offsetLeft/标签.offsetTop

⑨ 边框厚度:

标签.clientLeft/标签.clientTop

⑩ 不包含滚动条的窗口大小:

document.documentElement.clientWidth

document.documentElement.clientHeight