面试官:什么是DOM?为什么需要DOM?

221 阅读2分钟

DOM工作原理

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

1. 查询元素:

获取单个元素: document.querySelector('选择器')

获取多个元素: document.querySelectorAll('选择器')

**两者的区别:**

querySelector: 得到DOM对象可以直接使用DOM语法进行修改属性

querySelectorAll: 无法直接修改需要通过下标进行修改属性

2.元素的属性操作:

2.1内容属性

元素.innerText 获取元素的文本

元素.innerHtml 获取元素的标签+文本

区别:

元素.innerText 无法解析文本中的标签

元素.innerHtml 可以解析文本中的标签

2.2 html属性:元素.属性名=属性值

a.href 

img.src

2.3 样式属性

(1) 单个样式:元素.style.属性名=属性值

(2)多个样式:

className: 元素.class.Name='类名'

(3)classList语法:

新增类名:元素.classList.add('类名')

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

切换类名: 元素.classList.toggle('类名')

3.表单元素的特殊属性

3.1  表单内容: 元素.value   获取文本 

3.2 表单布尔属性

元素.disabled   获取禁用状态 (布尔类型) 

元素.checked   获取选中状态(用于radio/checkbox)

 元素.selected     获取选中状态(用于option) 

4.事件

1.交互功能 : 什么元素 在什么时刻 做什么事情

2.事件三要素

      事件源 : 什么元素
      
      事件类型 : 什么时刻
      
      事件处理函数 : 做什么事
      

3.注册事件 : 给元素添加交互

      事件源.事件类型 = 事件处理函数
     

4.事件原理及注意点

    (1)事件处理函数在注册的时候不会执行. (函数在声明的时候不会执行)
    
    (2)事件处理函数只有两种情况可以执行
    
      第一种: 用户主动触发交互, 浏览器会捕捉交互,底层会自动帮我们调用对象的方法
      
      第二种: 手动调用对象事件处理函数