webApi-DOM-01

101 阅读3分钟

DOM工作原理

  1. 代码从硬盘 读取到 内存 (代码)
  2. 生成DOM树
    修改了dom树,最终渲染的页面也会改变
  3. 渲染引擎开始渲染dom树 (页面)

获取页面元素

如何获取页面元素

通过选择器 语法 | 示例 | 描述 | 返回值 | | ------------------ | -------------------------------- | ------------------ | ---------- | | querySelector() | document.querySelector('选择器') | 根据选择器获取满足条件第一个元素 | DOM对象 null | | querySelectorAll() | document.querySelectorAll('选择器') | 根据选择器获取满足条件所有元素 | 伪数组

  • 1.获取单个元素

document.querySelector('选择器')

  • 2.获取多个元素

document.querySelectorAll('选择器')

  • 3.两者区别

querySelector() : 得到dom对象, 可以直接使用dom语法修改

querySelectorAll() : 得到数组, 不可以直接使用dom语法。 需要通过下标先取出里面的dom对象

元素内容操作

一定要先获取元素,才可以对元素进行其他操作

获取文本

元素.innerText

获取文本(包含子元素文本)

获取文本 + 标签

元素.innerHTML

两者区别

  • innerText : 无法解析文本中的标签
  • innerHTML : 可以解析文本中的标签

元素属性操作

语法作用
元素.id获取id
元素.className获取类名
元素.href获取链接(常用于a标签)
元素.src获取路径(常用于img标签)
  • 1.先获取元素
  • 2.获取属性

元素.属性名

  • 3.设置属性

元素.属性名 = 值

元素样式属性操作

语法(普通元素)示例描述
元素.style.样式名box.style.backgroundColor操作单个样式(行内权重)
元素.classNamebox.className操作元素类名(类权重),会覆盖原有类名
元素.classList.add('类名')box.classList.add('one')新增类名
元素.classList.remove('类名')box.classList.remove('one')移除类名
元素.classList.toggle('类名')box.classList.toggle('one')切换类名(有则移除,无则新增)
元素.classList.contains('类名')box.classList.contains('one')判断类名(true:有 false:没有)

通过style操作样式

  • 1 先获取元素
  • 2 设置元素css样式: 元素.style.样式名 = 样式值

注意点: 如果css属性有- 的需要转成小驼峰命名
(原因:js命名规范与css命名规范不一样)
小驼峰: (1)去掉- (2)-后面首字母大写

通过className操作样式

  • 1.先获取元素
  • 2.className语法: 元素.className = '类名' (会覆盖原本的类名)

类名需要通过className来访问,而不是class,因为class是js中的关键字

通过classList操作样式

  • 1 先获取元素
  • 2 语法:

追加类: 元素.classList.add('类名')

移除类: 元素.classList.remove('类名')

切换类: 元素.classList.toggle('类名')
切换意思: 如果有,则移除。 没有则追加。

表单元素常用属性

语法作用
元素.value获取文本
元素.disabled获取禁用状态 (布尔类型)
元素.checked获取选中状态(用于radio/checkbox)
元素.selected获取选中状态(用于option)

事件介绍及注册事件

1.事件:js处理用户交互的一种机制

  • 交互:什么元素在什么时刻做什么事

2.事件的三要素:组成事件的三要素

  • 事件源:什么元素(div p)
  • 事件类型:什么时刻(鼠标点击onclick 鼠标移入:onmouseover)
  • 事件处理函数:做什么事(一段代码:函数)

3.注册事件:本质是给元素属性赋值

  • 事件源.事件类型 = 事件处理函数
  • box.onclick = function(){}

4.事件工作原理

  • a.事件在注册的时候,不会执行(函数在声明的时候不会执行)
  • b.一旦元素注册事件之后,当用户触发了这个事件的时候,浏览器会自动捕捉到这个事件,然后帮我们调用元素对象的事件处理函数

5.页面中 任何元素都可以注册很多个事件(点击,移入等)