1. JavaScript 的组成

  2. Web API 和标准库不同,WebAPI浏览器 提供的一套 API,用于操作浏览器窗口和界面;

  3. WebAPI 中包含两个部分:

    1. BOMBrowser Object Model,浏览器模型,提供和浏览器相关的操作;
    2. DOMDocument Object Model,文档模型,提供和页面相关的操作;

BOM

BOM 提供了一系列的对象和函数,提供和浏览器本身相关的操作

  1. window 全局对象
  2. window.location
  3. window.history

DOM

DOM 是一个对象,它对应到 HTML 中的节点

获取 dom

API 含义
document.getElementById() 根据元素 id 获取 dom,得到单个 dom
document.getElementsByTagName() 根据元素名称获取 dom,得到 dom 的伪数组
document.getElementsByClassName() 根据元素类样式获取 dom,得到 dom 的伪数组
document.querySelector() 根据 CSS 选择器获取 dom,得到第一个匹配的 dom
document.querySelectorAll() 根据 CSS 选择器获取 dom,得到所有匹配的 dom 伪数组
document.documentElement 获取 html 元素
document.body 获取 body
document.head 获取 head
dom.children 获取 dom 的子元素,得到 dom 的伪数组
dom.childNodes 获取 dom 的子节点,得到 dom 节点的伪数组,关于节点对象点
dom.previousElementSibling 得到 dom 前一个兄弟元素
dom.nextElementSibling 得到 dom 后一个兄弟元素
dom.parentElement 得到 dom 的父元素

创建 dom

API 含义
document.createElement() 创建一个 dom 并返回,传入元素名称

更改 dom 结构

API 含义
dom.remove() 从文档树中删除 dom,不是删除对象
dom.removeChild() 删除 dom 的某个子节点,传入 dom 对象
dom.insertBefore() dom 的子节点中,添加一个新节点到另一个节点之前
dom.appendChild() 添加一个新节点到 dom 的子节点末尾,传入 dom 对象

dom 属性

  1. dom 属性是指 HTML 元素的「属性」;

  2. 属性有两种:

    1. 标准属性:HTML 元素本身拥有的属性,例如: a 元素的 href、title …
    2. 自定义属性:HTML 元素标准中未定义的属性;
  3. 所有标准属性均可通过 dom.属性名 得到,其中:

    1. 布尔属性会被自动转换为 boolean
    2. 路径类的属性会被转换为 绝对路径
    3. 标准属性始终都是存在的,不管你是否有在元素中操作该属性;
    4. class 由于和关键字重名,因此需要使用 className
  4. 所有的自定义属性均可通过下面的方式操作:

    1. dom.setAttribute(name, value),设置属性键值对;
    2. dom.getAttribute(name),获取属性值;

dom 内容

API 含义
dom.innerText 获取或设置元素文本内容,设置时会自动进行 HTML 实体编码
dom.innerHTML 获取或设置元素的 HTML 内容

dom 样式

  1. JS 中,有两种样式:

    1. 内联样式:元素的 style 属性中书写的样式;
    2. 计算样式(最终样式):元素最终计算出来的样式;
  2. JS 可以获取内联样式和计算样式,但只能设置内联样式,下面罗列了样式的常见操作:

    1. dom.style:获取元素的内联样式,得到样式对象,对象中的所有样式属性均可以被赋值,赋值后即可应用样式到元素的 style 中;
    2. getComputedStyle(dom):获取元素的计算样式,得到一个样式对象,该样式对象中的属性是只读的,无法被重新赋值;
  3. 关于 样式对象,注意:

    1. 当给样式赋值为空字符串时,相当于删除内联样式;
    2. 当给样式的赋值不合法时,赋值语句无效,不会报错;
    3. CSS 的短横线命名法,在属性名中表现为驼峰命名法;

dom 尺寸和位置

窗口尺寸

元素尺寸

元素相对于浏览器窗口位置

  1. 调用 dom.scrollTo(x, y) 可以设置元素的滚动位置,xy 分别表示 scrollLeftscrollTop

  2. 该方法通用元素回到元素顶部 dom.scrollTo(0, 0)

  3. 如果要监听元素的滚动,可以监听 scroll 事件类型;

元素相对于视口位置

  1. const { top, left, right, bottom } = Element.getBoundingClientRect()

  2. top、left、right、bottom 均相对于视口;

打赏作者
您的打赏是我前进的动力
微信
支付宝
评论

中午好👏🏻,我是 ✍🏻   疯狂 codding 中...

粽子

这有关于前端开发的技术文档和你分享。

相信你可以在这里找到对你有用的知识和教程。

了解更多

目录

  1. 1. BOM
  2. 2. DOM
    1. 2.1. 获取 dom
    2. 2.2. 创建 dom
    3. 2.3. 更改 dom 结构
    4. 2.4. dom 属性
    5. 2.5. dom 内容
    6. 2.6. dom 样式
    7. 2.7. dom 尺寸和位置
      1. 2.7.1. 窗口尺寸
      2. 2.7.2. 元素尺寸
      3. 2.7.3. 元素相对于浏览器窗口位置
      4. 2.7.4. 元素相对于视口位置