DOM(操作)

DOM

1

作用和分类

  • 作用:使用 JS 去操作 html 和浏览器

  • 分类:DOM(文档对象模型)、BOM(浏览在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    器对象模型)

DOM

  • 是用来呈现以及与任意HTML 或 XML文档交互的API
  • 简单说:DOM 是浏览器提供的一套专门用来 操作网页内容 的功能
  • DOM的作用:
    • 开发页面内容和实现用户交互
DOM树
  • 将HTML 文档以树状结构直观的表现出来,被称之文档树 或 DOM 树
  • 描述网页内容关系的名词
  • 作用:文档树直观地体现了标签与标签之间的关系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ov39Ps9k-1668846708684)(C:\Users\s2490\Desktop\知识总结\JavaScript\assets\1665471669949.png)]

DOM对象(*)
  • DOM对象:浏览器根据html标签生成的 JS 对象

    • ​ 浏览器根据html标签生成的 JS 对象

    • ​ 所有标签属性都可以在这个对象上面找到

    • ​ 修改这个对象的属性会自动映射到标签身上

  • DOM的核心思想

  • 把网页内容当作对象来处理

  • document 对象

    • ​ 是 DOM 里提供的对象
    • 所以它提供的属性和方法都是用来访问和操作页面内容的
      • 例:document.write()
    • 网页所用内容都在document里面

获取DOM对象

1.根据CSS选择器来获取DOM元素(重点)
  1. 选择匹配的第一个元素
  • 语法:

    document.querySelector('css选择器 ')
    
  • 参数:包含一个或多个有效的css选择器 字符串

  • 返回值:css选择器匹配的第一个元素,一个HTMLElement对象。如果没有匹配到,则返回null。

    2.选择匹配的多个元素

  • ​ 语法:

    document.querySelectorAll('css选择器 ')
    
  • ​ 参数:包含一个或多个有效的css选择器 字符串

  • ​ 返回值:CSS 选择器匹配的 NodeList 对象集合

  • 得到的是一个伪数组:

    • 有长度有索引号的数组
    • 但是没有 pop() push() 登数组方法
2.其他获取 DOM 元素方法(了解)
// 根据 id 获取一个元素
document.getElementById('nav')
// 根据标签获取一类元素 获取页面 所有 div
document.getElementsByTagName('div')
// 根据类名获取元素 获取页面 所有类名为 a 
document.getElementsByClassName('a')

设置 / 修改 DOM 元素内容

1.document.write()
  • 只能将文本内容追加到</body>前面的位置
  • 文本包含的标签会解析标签
2.元素innerText属性
  • 将文本内容添加 / 更新到任意标签位置
  • 文本中包含的标签不会被解析
3.元素innerHTML属性
  • 将文本内容添加 / 更新到任意变迁位置
  • 文本中包含的标签会被解析

设置 / 修改 DOM 元素属性

1.设置 / 修改元素常见属性
  • 还可以通过 js 设置 / 修改标签元素的样式属性

  • 常见的属性:href、title、src …

  • 语法:

    let img = document.querySelector('img')
    img.src = './images/1.png'
    
2.设置 / 修改元素样式属性
1.通过 style 属性操作css

语法:

//对象.style.样式属性 = 值
let div = document.querySelector("div")
div.style.backgroundColor = "pink"
2.操作类名修改css属性
  • 语法:
// active 是一个 css 类名
let div = document.querySelector("div")
div.className = "active"
  • 注意:

    • ​ class 是关键字,所以使用className代替

    • ​ className使用新值换旧值,如果添加一个类,需要保存之前的类名

3.通过classList操作css

语法:

// active 是一个 css 类名
let div = document.querySelector("div")
// 追加一个类
div.classList.add('active')
// 删除一个类
div.classList.remove('active')
// 切换一个类
div.classList.toggle('active')
3.设置 / 修改表单元素属性
  • 获取:DO M 对象.属性名

  • 设置:DOM对象.属性名 = 新值

表单.value = '用户名'
表单.type = 'password'

表单属性中添加就有效果,移除就没有效果,一律使用布尔值表示 如果为true代表添加了该属性 如果是false代表移除了该属性

比如:disabled(不可选中)、 checked、 selected()

定时器 - 间歇函数

1.开启定时器

setInterval(函数, 间隔时间)
  • 作用:每隔一段时间调用这个函数

  • 间隔时间单位是毫秒

2.关闭定时器

let time = setInterval(函数, 间隔时间)
clearInterval(time)

事件

事件监听

语法:

元素.addEventListener('事件',要执行的函数 )

事件监听三要素:

  • 事件源:哪个 DOM 元素被事件触发了, 要获取 DOM 元素
  • 事件:什么触发的 , 比如:click mouseover
  • 事件调用的函数 :要做什么事情
事件类型
事件类型
鼠标事件click(点击)mouseenter(鼠标经过)mouseleave(鼠标离开)
焦点事件focus(获得焦点)blur(失去焦点)
键盘事件Keydown(键盘按下触发)Keyup(键盘抬起触发)
文本事件input(用户输入事件)

高阶函数

  • 函数表达式
    • 函数也是[数据]
    • 把函数赋值给变量
  • 回调函数
    • 把函数当作里一个函数的参数传递,就是回调函数
    • 回调函数本身还是函数
    • 使用匿名函数做为回调函数比较常见

环境对象

能够分析判断函数运行在 不同环境中 this 所指代的对象

环境对象指的是函数内部特殊的 变量this , 它代表着当前函数运行时所处的环境

作用:弄清楚 this 的指向,可 以让我们代码更简洁

函数的调用方式不同, this 指代的对象也不同

编程思想

排他思想

使用:

  1. 干掉所有人

    使用for循环

  2. 复活自己

    通过 this 或者 下表找到自己或者对应的元素

2

节点操作

DOM节点

  1. 节点类型:
  • 元素节点:
    • 所有标签 比如 body、div
    • html 是根节点
  • 属性节点
    • 所有的属性 比如 herf
  • 文本节点
    • 所有的文本

    • 其他

  1. 查找结点
    节点关系:
    • 父节点查找
      • parentNode 属性

      • 返回最近一级的父节点 找不到返回为 null

        子元素.parenNode
        
    • 子节点查找
      • childNodes

        获得所有子节点、包括文本节点(空格、 换行)、注释节点等

      • children

        • 仅获得所有元素节点

        • 返回的还是一个伪数组

          父元素.children
          
    • 兄弟节点查找
      1. 下一个兄弟节点
        • nextElementSibling 属性
      2. 上一个兄弟节点
        • previousElementSibling 属性
  2. 增加节点
    1.创建节点
    • 创造出一个新的网页元素

    • 创建元素节点方法:

      document.createElement('标签名'
    2.追加节点
    • ​ 插入到父元素的最后一个子元素:

      父元素.appendChild(要插入的元素)
      
    • ​ 插入到父元素的某个子元素的前面:

      父元素.insertBefore(要插入的元素, 在哪个元素前面)
      
    3.克隆节点
    • 若为true,则代表克隆时会包含 后代节点一起克隆
    • 若为false,则代表克隆时不包含后代节点
    • 默认为false
  3. 删除节点
    • 删除元素通过父元素删除

    • 语法:

      父元素.removeChild(要删除的元素)
      
    • 注:

      • 不存在父子关系则删除不成功
      • 删除节点和隐藏节点(display:none)有区别的:隐藏节点还是存在的,但是删除,则从html中删除节点

时间对象

  • 时间对象:用来表示时间的对象
  • 作用:可以得到当前系统时间
1.实例化
  • 获得当前时间
let date = new Date() 
  • 获得指定时间
let date = new Date('2020-10-31') 
2.时间对象方法
方法作用说明
getFullYear()获得年份获取四位年份
getMonth()获得月份取值为0~11
getDate()获取月份中的每一天不同月份取值也不相同
getDay()获取星期取值为0~6
getHours()获取小时取值为0~23
getMinutes()获取分钟取值为0~59
getSeconds()获取秒取值为0~59
3.时间戳

1.通过时间戳得到是毫秒,需要转换为秒在计算
2.转换公式:

d=parselnt(总秒数/60/60/24)//计算天数
h=parselnt(总秒数/60/60%24); //计算小时
m=parselnt(总秒数/60%60)//计算分
s=parselnt(总秒数%60)//计算当前秒数

重绘和回流

1.浏览器进行界面渲染

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nhdoeFG8-1668846708685)(C:\Users\s2490\Desktop\知识总结\JavaScript\assets\1665635173326.png)]

  • 解析(Parser)HTML,生成DOM树(DOM Tree)
  • 同时解析(Parser)CSS,生成样式规则(Style Rules)
  • 根据DOM树和样式规则,生成渲染树(Render Tree)
  • 进行布局Layout(回流 / 重排):根据生成的渲染树,得到节点的几何信息(位置,大小)
  • 进行绘制Painting(重绘):根据计算和获取的信息进行整个页面的绘制
  • Display:展示在页面上
2.重绘和回流
  • 回流(重排)

    当Render Tree中部分或者全部元素的尺寸、结构、布局等发生改变时,浏览器就会重新渲染部分或全部文档的过程称为回流。

  • 重绘

    由于节点(元 素)的样式的改变并不影响它在文档流中的位置和文档布局时(比如:color、background-color、outline等),称为重绘。

重绘不一定引起回流, 而回流一定引起重绘。
  • 导致回流(重排)的操作:
    • 页面的首次刷新
    • 浏览器的窗口大小发生改变
      元素的大小或位置发生改变
    • 改变字体的大小
    • 内容的变化(如:input框的输入,图片的大小)
    • 激活css伪类(如::hover)
    • 脚本操作DOM(添加或者删除可见的DOM元素)

简单理解影响到布局, 就是回流(重排)

3

事件对象

获取事件对象
  • ​ 事件对象有事件触发时的相关信息

  • ​ 在事件绑定的回调函数的第一个参数就是事件对象

  • 一般命名为 event、ev、e

元素.addEventListener('click',function(e){
})
事件对象常用属性
  • type
    • 获取当前的事件类型
  • clientX / clientY
    • 获取光标相对于浏览器可见窗口左上角的位置
  • offsetX / offsetY
    • 获取光标相当于当前 DOM 元素左上角的位置
  • key
    • 用户按下的键盘键的值
    • 现在不提倡使用keyCode

事件流

事件流指的是事件完整执行过程中的流动路径

  • 1.捕获阶段

    • 从父到子
  • 冒泡阶段

  • 从子到父

  • 事件冒泡概念:

  • 当一个元素的事件被触发时,同样的事件将会在该元素的所有祖先元素中依次被触发。这一过程被称为事件冒泡

  • 2.事件捕获概念:

    • 从DOM的根元素开始去执行对应的事件(从外到里)
    • 事件捕获需要写对应代码才能看到效果
    • 代码:
    DoM.addEventListener(事件类型,事件处理函数,是否使用捕获机制)
    
    • addEventListener第三个参数传入true代表是捕获阶段触发(很少使用)

    • 若传入false代表冒泡阶段触发,默认就是false

    • 若是用L0事件监听,则只有冒泡阶段,没有捕获

  • 3.阻止事件流动

    • 因为默认就有冒泡模式的存在,所以容易导致事件影响到父级元素

    • 若想把事件就限制在当前元素内,就需要阻止事件流动

    • 阻止事件流动需要拿到事件对象

    • 语法:

      事件对象.stopPropagation()
      
    • 1.阻止默认行为, 比如链接点击不跳转,表单域的跳转

    • 语法:

    e.preventDefault()
    
    • 2.两种注册事件的区别:

      • 传统on注册(L0)
        • 同一个对象,后面注册的事件会覆盖前面注册(同一个事件)
        • 直接使用ul覆盖偶就可以实现事件的解绑
        • 都是冒泡阶段执行的
      • 事件监听注册(L2)
        • 语法:addEventListener(事件类型,事件处理函数,是否使用捕获)
        • 后面注册的事件不会覆盖前面注册的事件(同一个事件)
        • 可以通过第三个参数去确定是在冒泡或者捕获阶段执行
        • 必须使用removeEventListener(事件类型,事件处理函数,获取捕获或者冒泡阶段)
          的存在,所以容易导致事件影响到父级元素
    • 若想把事件就限制在当前元素内,就需要阻止事件流动

    • 阻止事件流动需要拿到事件对象

    • 语法:

      事件对象.stopPropagation()
      
    • 1.阻止默认行为, 比如链接点击不跳转,表单域的跳转

    • 语法:

    e.preventDefault()
    
    • 2.两种注册事件的区别:
      • 传统on注册(L0)
        • 同一个对象,后面注册的事件会覆盖前面注册(同一个事件)
        • 直接使用ul覆盖偶就可以实现事件的解绑
        • 都是冒泡阶段执行的
      • 事件监听注册(L2)
        • 语法:addEventListener(事件类型,事件处理函数,是否使用捕获)
        • 后面注册的事件不会覆盖前面注册的事件(同一个事件)
        • 可以通过第三个参数去确定是在冒泡或者捕获阶段执行
        • 必须使用removeEventListener(事件类型,事件处理函数,获取捕获或者冒泡阶段)
        • 匿名函数无法被解绑
苏一 一
关注 关注
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DOM中元素操作
涔曦的博客
09-27 452
知识大纲: DOM是什么? 节点类型; 获取元素; 创建元素; 插入元素; 删除元素; 复制元素; 替换元素; DOM是什么? DOM对象 DOM(Document Object Model)全称“文档对象模型”,是W3C定义的一个标准。 DOM操作,可以简单理解成“元素操作”。 DOM结构 DOM采用“树形结构”,用“树节点”的形式来表示页面中的每个元素。例如: &...
DOM操作
qq_53566222的博客
07-14 2179
DOM是当网页被加载时,浏览器会创建页面的文档对象模型(DocumentObjectModel)。把文档中的代码翻译成一个对象模型在这个模型中所有相关的标签属性注释文本等等12种数据都翻译为一种类型的对象统称节点对象这些对象之间在文档模型数据结构中存在某种关系根节点父子节点同胞节点等等1.只有一个根节点document2.除了根节点外所有节点都有唯一的一个父节点3.document是window对象的属性。............
JavaScriptDOM 操作(一)
最新发布
m0_73759720的博客
08-11 1372
本文主要讲了获取标签的方法、设置标签的样式、设置文本、标签操作及事件的一些操作
DOM操作
Mr_115的博客
11-01 2782
DOM操作
jQuery常见面试题之DOM操作详析
12-10
关于JQ的DOM操作面试问题很多,可以从各个点问,所以列举几个常见问题,毕竟面试只是过程,重要的是知识自己掌握了。 面试题一:JQ中html()、text()和val()区别? 面试题二:JQ中find()、has()和filter()区别? 面试...
易语言源码超文本浏览框全套DOM操作.rar
07-08
《易语言源码超文本浏览框全套DOM操作》是一份专为易语言用户设计的编程资源,它提供了在易语言环境中对超文本浏览框进行深入DOM(Document Object Model)操作的完整解决方案。DOMHTML和XML文档的标准表示,通过...
JavaScript dom操作 趣味案例
06-25
本资源为JavaScriptdom操作的趣味案例,可直接打开查看本资源为JavaScriptdom操作的趣味案例,可直接打开查看本资源为JavaScriptdom操作的趣味案例,可直接打开查看本资源为JavaScriptdom操作的趣味案例,可...
Angular2学习教程之组件中的DOM操作详解
08-30
在Angular2的学习过程中,了解如何在组件中进行DOM操作是非常重要的技能。Angular提供了一套API,使得开发者可以在不直接触碰原始DOM元素的情况下,安全、有效地进行DOM操作。本教程将详细讲解Angular2中组件内DOM...
Element:轻量级DOM操作
05-20
这个库的主要目标是简化DOM操作,使得在网页开发中进行元素选择、添加、删除和修改等工作更为便捷。下面将详细探讨Element库的一些核心功能和应用场景。 1. **元素选择**: - `getElementById`:根据ID查找DOM中的...
13前端学习之WebAPI(三):节点操作、事件高级、DOM事件流、事件委托&冒泡
浅弋、璃鱼的博客
04-13 1598
文章目录一、节点操作:1. 删除节点:1.2. 案例:删除留言2.2 实现: 一、节点操作: 1. 删除节点: node.removeChild(child) node.removeChild() 方法从 node节点中删除一个子节点,返回删除的节点 <button>删除</button> <ul> <li>熊大</li> ...
DOM常用操作
weixin_30793643的博客
08-27 157
  文档对象模型( DOM, Document Object Model )主要用于对HTML和XML文档的内容进行操作DOM描绘了一个层次化的节点树,通过对节点进行操作,实现对文档内容的添加、删除、修改、查找等功能。 一、DOMDOM树有两种,分别为节点树和元素树。 节点树:把文档中所有的内容都看成树上的节点; 元素树:仅把文档中的所有标签看成树上的节点。 二、DOM...
操作DOM
小白菜的博客
06-17 450
    DOM(文档对象模型)是W3C指定的一套技术规范,用来描述JavaScript脚本怎样与HTML或XML文档进行交互的Web 标准。DOM规定了一系列标准接口,允许开发人员通过标准方式访问文档结构,操作网页内容,控制样式和行为等。    文章要点:了解DOM使用JavaScript操作结点使用JavaScript操作元素节点使用JavaScript操作文本和属性结点使用JavaScript...
JavaScript DOM操作表格与样式完全指南
"这篇文档详细阐述了如何使用JavaScript DOM操作HTML中的表格及其样式,适合对JavaScriptDOM操作感兴趣的开发者参考学习。" 在JavaScript中,DOM(Document Object Model)是HTML和XML文档的一种编程接口,它...
写文章

热门文章

  • DOM(操作) 2581
  • BOM(操作浏览器) 282
  • 关于JavaScript数据可视化(Echarts)的使用 161
  • 正则表达式 153
  • 响应式布局 112

最新文章

  • 作用域 函数 解构赋值
  • 正则表达式
  • offset、client、scroll的使用
2022年8篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家江苏个性化玻璃钢雕塑生产厂家玻璃钢女神雕塑河南特色商场美陈销售公司四川特色商场美陈销售公司漳州玻璃钢海豚雕塑定制成都商场美陈展示玻璃钢卡通猴子雕塑湖北玻璃钢雕塑厂周口标识标牌玻璃钢卡通雕塑张掖彩色玻璃钢雕塑哪家好德州公园标识玻璃钢雕塑户外绿地玻璃钢雕塑工厂广东大型商场美陈市场猎豹玻璃钢雕塑江苏玻璃钢雕塑哪家便宜潮州人物玻璃钢动物雕塑苏州玻璃钢雕塑哪个厂家好邯郸景观园林玻璃钢仿铜雕塑云岩区玻璃钢雕塑制作哪家好玻璃钢西瓜雕塑工厂福建玻璃钢花盆销售公司玻璃钢树脂雕塑施工工艺不锈钢断桥玻璃钢雕塑延边玻璃钢雕塑设计公司泡沫玻璃钢雕塑单价玻璃钢雕塑喷镀加工玻璃钢动漫卡通雕塑设计江苏玻璃钢雕塑产品南昌卡通玻璃钢雕塑价格信阳花朵玻璃钢仿铜雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化