DOM 文档对象模型

一、DOM简介

1、什么是DOM

DOM 文档对象模型简称,是W3C组织推荐的处理可扩展标记语言的标准编程接口

W3C已经定义了一系列的DOM接口,通过这些接口可以改变网页的内容、结构、样式

2、DOM树

DOM把以上内容都看做是对象

二、获取元素

获取页面元素:根据ID获取、根据标签名获取、通过HTML5新增的方法获取、特殊元素获取

1、根据ID获取

使用 getElementByld()方法可以获取带有ID的元素对象

2、根据标签名获取

使用getElementsByTagName()方法可以返回带有指定标签名的对象的集合

document.getElementsByTagName(‘标签名’);

注意:1、因为得到的是一个对象的集合,所以我们想要操作里面的元素就需要遍历

得到元素对象是动态的

        2、父元素必须是单个对象(必须指明是哪一个元素对象)。获取的时候不包括父元素自己

3、通过HTML5新增的方法获取

1、document.getElementsByClassName(‘类名’); 根据类名返回元素对象集合

2、document.querySelector(‘选择器’);  根据指定选择器返回第一个元素对象

3、document.querySelectorAll(‘选择器’); 根据指定选择器返回

4、获取特殊元素(body,HTML)

1、获取body元素

document.body  返回body元素对象

2、获取HTML元素

document.documentElement   返回HTML元素对象

三、事件基础

1、事件由三部分组成:事件源 事件类型 事件处理程序

2、执行事件的步骤

1、获取事件源

2、注册事件(绑定事件)

3、添加事件处理程序(采取函数赋值形式)

3、常见的鼠标事件

4、分析事件三要素

下拉菜单三要素

关闭广告三要素

四、操作元素

1、改变元素内容

        2、innerText 和 innerHTML的区别

1、innerText 不识别HTML标签,非标准,去除空格和换行

2、innerHTML 识别HTML标签,W3C标准,保留空格和换行

这两个属性是可读写的,可以获取元素里面的内容

3、常用元素的属性操作

        4、分时问候并显示不同图片案例

5、表单元素的属性操作

利用DOM可以操作如下表单元素的属性:

type 、value、checked、selected、disabled

        6、仿京东显示密码案例

7、样式属性操作

我们可通过JS修改元素的大小、颜色、位置

1、element.style   行内样式操作

2、element.className 类名样式操作

注意:JS里面样式采用驼峰命名法

          JS 修改 style 样式操作,产生的是行内样式,css权重比较高。

如果样式修改过多,可以采取操作类名方式更改元素样式

class 因为是个保留字,因此使用className  来操作元素类名属性

className 会直接更改元素的类名,会覆盖原先的类名

        8、显示隐藏文本框内容

        9、仿新浪注册页面

操作元素总结

4.5 排他思想

        百度换肤效果

        表格隔行变色

        全选和取消全选

4.6 自定义属性的操作
        1、获取属性值

element .属性  获取属性值        获取内置属性值(元素本身自带的属性)

element .getAttribute('属性')        主要获得自定义的属性

        2、设置属性值

element .属性 = ‘值’        设置内置属性值

element .setAttribute('属性',‘值’);        主要设置自定义的属性

        3、移除属性

element .removeAttribute('属性')

tab 栏切换(重点案例)

在for循环绑定点击事件 上面加一句      lis[i].setAttribute('index', i);

给五个小li 设置索引号

4.7 H5自定义属性

自定义属性目的:是为了保存并使用数据。有些数据可以保存到页面中而不用保存到数据库中。

自定义属性获取是通过getAttribute(‘属性’)获取

h5新增的获取自定义属性的方法 他只能获取data-开头的

dataset 是一个集合存放了所有以data开头的自定义属性

五、节点操作

1、为什么学节点操作

获取元素通常使用两种方式:

2、节点概述

网页中所有内容都是节点(标签、属性、文本、注释等),在DOM中,节点使用node表示

HTML  DOM树中的所有节点均可通过JavaScript 进行访问,所有HTML元素(节点)均可被修改,也可创建或删除

一般,节点至少拥有 nodeType(节点类型),nodeName(节点名称)和nodeValue(节点值)这三个基本属性

我们在实际开发中,节点操作主要操作的是元素节点

3、节点层级

利用DOM树可以把节点划分为不同的层级关系,常见的是父子兄层级关系

        1、父级节点

node.parentNode

parentNode 属性可返回某节点的父节点,注意是最近的一个父节点

如果指定的节点没有父节点则返回null

        2、子节点

1、parentNode.childNodes(标准)

2、parentNode.children(非标准)

parentNode.children 是一个只读属性,返回所有的子元素节点。他只返回子元素节点,其余节点不返回

3、parentNode.firstChild

firstChild  返回第一个子节点,找不到则返回null。同样,也是包含所有的节点。

4、parentNode.lastChild

5、parentNode.firstElementChild

返回第一个子元素节点,找不到则返回null

6、parentNode.lastElementChild

下拉菜单案例

        3、兄弟节点

1、node.nextSibling 返回当前元素的下一个兄弟节点,找不到则返回null。

2、node.previousSibling  返回当前元素上一个兄弟节点

3、node.nextElementSibling   返回下一个兄弟元素节点

4、node.previousElementSibling

4、创建节点

document.creatElement('tagName')

document.creatElement(' ') 方法创建由 tagName 指定的 HTML 元素。因为这些元素原先不存在,是根据我们的需求动态生成的,所以我们也称为 动态创建元素节点

5、添加节点

1、node.appendChild(child)     node父级  child 子级  后面追加元素

node.appendChild( )  方法将一个节点添加到指定父节点的子节点列表末端。类似于css 里面的after 伪元素

2、node.inserBefore(child,指定元素)   

指定一个元素前面追加元素

我们想要页面添加一个新的元素:1、创建元素  2、添加元素

简单版发布留言案例

6、删除节点

node.removeChild(child)

node.removeChild( ) 方法从dom中删除一个子节点,返回删除的节点

删除留言案例

<a href='javascript:;'>删除</a>

7、复制节点

node.cloneNode( )

node.cloneNode( ) 方法返回调用该方法的节点的一个副本。也称为克隆节点、拷贝节点

注意:

如果括号参数为空或者为false ,则是浅拷贝,即只克隆复制节点本身,不克隆里面的子节点

括号里面为true 深拷贝 复制标签复制里面的内容

动态生成表格

5、8三种动态创建元素区别

document.write()

element.innerHTML

document.createElement()

1、document.write 是直接将内容写入页面的内容流,但是文档流执行完毕,则会导致页面全部重绘

2、innerHTML 是将内容写入某个dom节点,不会导致页面全部重绘

3、innerHTML 创建多个元素效率更高(不要拼接字符串,采取数组形式拼接),结构稍复杂

4、createElement()创建多个元素效率稍降低一点,但结构更清晰

DOM重点核心

关于dom操作,我们主要针对于元素的操作。主要有创建(document.write\innerHTML\creatElement)\增(appendchild、insertBefore)、删(removeChild)、改、查属性操作事件操作

改:

查:

属性操作:

事件操作:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/10847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day001 ~如何修改主机名

命令行方式设置主机名 # 这个很重要&#xff01;用命令改方便些 hostnamectl set-hostname ocloud-252 #查询&#xff0c;exit或logout重新登录后发现主机名换掉 hostname nmtui方式修改 nmtui 在工作中,如果机器很多,最好修改主机名做好标识不至于弄混,方便管理.

LeetCode—用队列实现栈

一.题目 二.思路 1.后入先出的实现&#xff1a; 创建两个队列来实现栈&#xff08;后入先出&#xff09;&#xff1a; 两个队列&#xff0c;保持一个存数据&#xff0c;另一个为空&#xff0c;入数据&#xff08;push&#xff09;要入不为空的队列&#xff0c;&#xff08;p…

DDS块集是如何工作的?

DDS块集使你能够在Simulink中创建DDS应用程序。如果你有一个在Simulink中建模的应用程序&#xff0c;希望能够使用DDS&#xff0c;则可以使用DDS块集轻松连接到DDS中间件平台。 DDS块集将DDS概念引入Simulink环境&#xff0c;在Simulink应用程序中对这些概念进行建模&#xff0…

STM32串口通信入门

文章目录 一、串口协议和RS-232标准&#xff0c;以及RS232电平与TTL电平的区别1.串口通信协议2.RS-232标准3.RS232电平与TTL电平的区别4.USB/TTL转232“模块&#xff08;CH340芯片为例&#xff09; 二、补充实验&#xff08;一&#xff09;几个常见的库函数、结构体1.时钟配置函…

【机器学习数据可视化-04】Pyecharts数据可视化宝典

一、引言 在大数据和信息爆炸的时代&#xff0c;数据可视化成为了信息传递和展示的关键手段。通过直观的图表和图形&#xff0c;我们能够更好地理解数据&#xff0c;挖掘其背后的信息。Pyecharts&#xff0c;作为一款基于Python的数据可视化库&#xff0c;凭借其丰富的图表类型…

多模态EDA论文小记

论文地址 该论文主要改进点是&#xff1a;通过动态化局部搜索中每个集群大小&#xff0c;高斯和柯西分布共同产生个体。总的来说改进点不多&#xff0c;当然也可能是笔者还没发现。 局部搜索 划分集群 划分集群有两个策略分别是&#xff1a; 随机生成一个点作为中心点&…

MySQL表死锁查询语句

步骤1&#xff1a;查询表死锁的sql语句&#xff1a; SELECT * FROM information_schema.PROCESSLIST where length(info) >0 ; 或 SELECT * FROM information_schema.INNODB_TRX; 步骤2&#xff1a;删除 kill "对应的线程id"

【JVM】Class文件的格式

目录 概述 Class文件的格式 概述 Class文件是JVM的输入&#xff0c;Java虚拟机规范中定义了Class文件的结构。Class文件是JVM实现平台无关、技术无关的基础。 1:Class文件是一组以8字节为单位的字节流&#xff0c;各个数据项目按顺序紧凑排列 2:对于占用空间大于8字节的数据…

16 华三数据中心最流行的技术 M-LAG

STP和MTP&#xff08;第二十二课&#xff09;-CSDN博客 VRRP技术和浮动路由(第二十六课)_vrrp 浮动路由-CSDN博客 VRRP DHCP ACL NAT 网络核心路由技术综述 (第十课)-CSDN博客 04 交换机的IRF的配置-CSDN博客 1 M-LAG AI介绍 M-LAG&#xff08;Multi-Chassis Link Aggrega…

其他的 框架安全:Apache Solr 远程代码漏洞.(CVE-2019-0193)

什么是 Apache Solr Apache Solr是一个开源的搜索服务&#xff0c;便用Java语言开发&#xff0c;主要基于 HTTP 和ApacheLucene 实现的。Sor是一个高性能&#xff0c;采用Java5开发&#xff0c;基于Lucene的全文搜索服务器。 目录&#xff1a; 什么是 Apache Solr 生成的漏…

基于yolov5+streamlit目标检测演示系统设计

YOLOv5与Streamlit&#xff1a;智能目标检测可视化展示介绍 随着人工智能技术的飞速发展&#xff0c;目标检测技术已成为推动智能化社会进步的关键技术之一。在众多目标检测算法中&#xff0c;YOLOv5以其卓越的性能和实时性&#xff0c;成为了业界的佼佼者。与此同时&#xff…

Spring Boot 集成 sa-token 实践教程

Spring Boot 集成 sa-token 实践教程 sa-token 是一个轻量级且功能强大的权限认证框架&#xff0c;它基于Java语言&#xff0c;专为Java开发者设计&#xff0c;以简化权限管理的复杂性。在Spring Boot项目中集成sa-token&#xff0c;可以快速实现会话管理、权限控制等功能。本文…

程序员必读书单(CSDN专享)

大家好&#xff0c;我是王有志&#xff0c;一个分享硬核 Java 技术的金融摸鱼侠&#xff0c;欢迎大家加入 Java 人自己的交流群“共同富裕的 Java 人”。 今天是一篇分享资源的汇总&#xff0c;近半年来我总计分享了 202 本&#xff08;将近 10G &#xff09;的计算机领域著作…

智慧法治:AI技术如何赋能法律行业创新

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

Git 的原理与使用(上)

Git是一个分布式版本控制系统&#xff0c;它被广泛用于协作开发和管理软件项目。开发人员可以通过Git来跟踪文件的变化、协调工作、并管理项目的不同版本。 Git允许用户在不同的分支上开发新功能&#xff0c;然后合并这些分支并确保团队成员之间的工作协调一致。此外&#xff…

微信小程序踩坑,skyline模式下,scroll-view下面的一级元素设置margin中的auto无效,具体数据有效

开发工具版本 基础库 开启skyline渲染调试 问题描述 skyline模式下,scroll-view下面的一级元素的margin写auto的值是没有效果的(二级元素margin写auto是有效果的),关闭这个模式就正常显示 演示效果图 父元素的宽度和高度效果(宽度是750rpx,宽度占满的) 一级元素宽度和css效果…

Python游戏制作大师,Pygame库的深度探索与实践

写在前言 hello&#xff0c;大家好&#xff0c;我是一点&#xff0c;专注于Python编程&#xff0c;如果你也对感Python感兴趣&#xff0c;欢迎关注交流。 希望可以持续更新一些有意思的文章&#xff0c;如果觉得还不错&#xff0c;欢迎点赞关注&#xff0c;有啥想说的&#x…

笔记3:torch训练测试VGG网络

&#xff08;1&#xff09;利用Netron查看网络实际情况 上图链接 python生成上图代码如下&#xff0c;其中GETVGGnet是搭建VGG网络的程序GETVGGnet.py&#xff0c;VGGnet是该程序中的搭建网络类。netron是需要pip安装的可视化库&#xff0c;注意do_constant_foldingFalse可以防…

【简单介绍下Sass】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

Windows 查找端口号关闭端口号关闭进程的操作流程

Windows 查找端口号关闭端口号关闭进程 8000为端口号 1.查看端口占用程序的ID号 netstat -aon|findstr "8000"比如结果是5684 2.查看ID对应的程序进程 tasklist|findstr "6884"3.关闭进程 taskkill -PID 6884 -F成功: 已终止 PID 为 5684 的进程。