DOM 基础操作

article/2025/10/19 14:24:46

文章目录

  • 前言
  • 一、DOM 简介
    • 1.1 什么是 DOM
  • 二、获取元素
    • 2.1 如何获取页面元素
    • 2.2 根据 ID 获取
    • 2.3 根据标签名获取
    • 2.4 通过 HTML5 新增的方法获取
    • 2.5 获取特殊元素(body,html)
  • 三、事件基础
    • 3.1事件三要素
    • 3.2 执行事件的步骤
    • 3.3常见的鼠标事件
  • 四、操作元素
    • 4.1 常用元素的属性操作
    • 4.2 样式属性操作


前言

本文是博主的一些笔记跟想法,如果觉得本文有点东西请个博主点个关注,你的支持是我更新的动力,先赞后看养成习惯。
在这里插入图片描述


以下是本篇文章正文内容

一、DOM 简介

1.1 什么是 DOM

一个完整的 JavaScript 实现由以下 3 个不同部分组成:

  • 核心(ECMAScript):语言核心部分,描述了该语言的语法和基本对象。

  • 文档对象模型(Document Object Model,DOM):网页文档操作标准,描述处理网页内容的方法和接口。

  • 浏览器对象模型(BOM):客户端和浏览器窗口操作基础,描述与浏览器进行交互的方法和接口。

文档对象模型(Document Object Model,简称 DOM),是 W3C 组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口。W3C 已经定义了一系列的 DOM 接口,通过这些 DOM 接口可以改变网页的内容、结构和样式。


官方语言: 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。它是一种与平台和语言无关的应用程序接口(API),它可以动态地访问程序和脚本,更新其内容、结构和www文档的风格(HTML和XML文档是通过说明部分定义的)。文档可以进一步被处理,处理的结果可以加入到当前的页面。DOM是一种基于树的API文档,它要求在处理过程中整个文档都表示在存储器中。另外一种简单的API是基于事件的SAX,它可以用于处理很大的XML文档,由于大,所以不适合全部放在存储器中处理。

在这里插入图片描述

  • 文档:一个页面就是一个文档,DOM 中使用 document 表示
  • 元素:页面中的所有标签都是元素,DOM 中使用 element 表示
  • 节点:网页中的所有内容都是节点(标签、属性、文本、注释等),DOM 中使用 node 表示

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


二、获取元素

2.1 如何获取页面元素

DOM在我们实际开发中主要用来操作元素。
我们如何来获取页面中的元素呢?获取页面中的元素可以使用以下几种方式:

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

2.2 根据 ID 获取

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

<form action=""><input type="text" id="num" /><br><input type="button" value="查看结果"/>
</form>
<script type="text/javascript">//获取到id为num的input标签document.getElementById('num')
</script>

·通过id获取是比较简单快捷的方法·


2.3 根据标签名获取

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

<form action=""><input type="text" id="num" /><br><input type="button" value="查看结果"/>
</form>
<script type="text/javascript">//获取到id为num的input标签document.getElementsByTagName('input')//会获取到所有的input标签
</script>

注意:

  • 因为得到的是一个对象的集合,所以我们想要操作里面的元素就需要遍历。
  • 得到元素对象是动态的

2.4 通过 HTML5 新增的方法获取

document.getElementsByClassName(‘类名’)// 根据类名返回元素对象集合
document.querySelector('选择器'); // 根据指定选择器返回第一个元素对象
document.querySelectorAll('选择器'); // 根据指定选择器返回

这里就说一下querySelector 与querySelectorAll

  1. querySelector返回满足条件的第一个元素(node),而querySelectorAll返回满足条件的所有元素

  2. 在都没有满足条件的元素情况下:querySelector返回null,而querySelectorAll返回空的数组[ ]。

<div id="box"><h2 class="box-text">h2</h2><p class="box-text">p</p>
</div><button type="button" onclick="show()">点我</button>
<script>function show(){var x= document.getElementById('box')var arr = x.querySelectorAll('.box-text')for(var i=0; i<arr.length; i++){arr[i].innerHTML='改变了!'}}
</script>

在这里插入图片描述
在这里插入图片描述


2.5 获取特殊元素(body,html)

1.获取body元素

doucumnet.body // 返回body元素对象

2.获取html元素

document.documentElement // 返回html元素对象

三、事件基础

JavaScript 使我们有能力创建动态页面,而事件是可以被 JavaScript 侦测到的行为。

简单理解: 触发— 响应机制。

网页中的每个元素都可以产生某些可以触发 JavaScript 的事件,例如,我们可以在用户点击某按钮时产生一个事件,然后去执行某些操作。

3.1事件三要素

  • 事件源 (谁)
  • 事件类型 (什么事件)
  • 事件处理程序 (要做什么)
var btn = document.getElementById('btn');
btn.onclick = function() {alert('你好吗'); 
};

3.2 执行事件的步骤

  • 获取事件源
  • 注册事件(绑定事件)
  • 添加事件处理程序(采取函数赋值形式)

3.3常见的鼠标事件

注:以下图片的事件只是常见的并不代表所有

在这里插入图片描述
案例

以下案例用到了 经过触发 离开触发 点击触发 三个事件

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style type="text/css">img{display: block;margin: 0 auto;cursor: pointer;}</style><script>function change(r){//形参var imgobj = document.getElementById("img") //判断事件里面的实参if(r=='horse'){imgobj.src = "img/horse.jpg"}else if(r=='dog'){imgobj.src= "img/dog.jpg"}else{imgobj.src= "img/mokey.jpg"}}</script></head><body><img src="img/dog.jpg" id="img" onmouseover="change('horse')" onmouseout="change('dog')" onclick="change('mokey')"></body>
</html>

四、操作元素

avaScript 的 DOM 操作可以改变网页内容、结构和样式,我们可以利用 DOM 操作元素来改变元素里面的内容 、属性等。注意以下都是属性

4.1 常用元素的属性操作

innerText、innerHTML 改变元素内容
src、href
id、alt、title

案例

<body><a href="https://www.sohu.com/" id="link" title="sohu">搜狐</a>
</body>
<script>
window.onload=function(){var liobj=document.getElementById("link")liobj.href="https://www.baidu.com"liobj.title='百度'liobj.innerHTML='百度'liobj.className='link'
}
</script>
<div id="box">我是div原来的文字</div><script>var box =document.getElementById("box")box.onmouseover=function(){this.innerHTML='<font color="red">我是处理过的</font>'}box.onmouseout=function(){this.innerText="<font color='red'>我是div原来的文字</font>"}</script>

4.2 样式属性操作

我们可以通过 JS 修改元素的大小、颜色、位置等样式。

element.style 行内样式操作
element.className 类名样式操作

注意:
1.JS 里面的样式采取驼峰命名法 比如 fontSize、 backgroundColor
2.JS 修改 style 样式操作,产生的是行内样式,CSS 权重比较高

在这里插入图片描述


http://chatgpt.dhexx.cn/article/odvsdoYt.shtml

相关文章

[js]DOM操作

DOM也就是文档对象模型&#xff1a;document object model 主要用来动态操作HTML的元素节点&#xff0c;dom操作文档是居于DOM树为根据操作的。DOM树为html整体结构框架&#xff0c;其中有各种嵌套标签&#xff0c;最典型的就是以body为主容器&#xff0c;在body内部设置各种元…

DOM操作总结  (。♥ᴗ♥。) 哇!!

知识点 DOM 本质DOM 节点操作DOM 结构操作DOM 性能 前言 各种框架层出不穷&#xff0c;但DOM操作一直都会是前端工程师的基础&#xff0c;必备知识。 只会Vue和React等框架&#xff0c;而不懂DOM操作的前端程序员们。。。 DOM的本质&#xff1f; Do you know&#xff1f; 首…

JavaScript中DOM操作

Web前端基础修炼 HTML基本标签详解与运行截图 CSS基本操作详解及截图演示 JavaScript基础(ECMAScript) JavaScript中DOM操作 JavaScript中BOM操作 目录 DOM介绍 获取元素 操作元素 节点操作 DOM介绍 JavaScript一共包括三部分&#xff0c;分别是ECMAScript也就是Jav…

Dom操作的性能优化

在 开发过程中&#xff0c;或多或少都会遇到要操作dom的情况&#xff0c;而dom操作多多少少都会耗费一些性能&#xff0c;那今天我们就一起来看看在操作dom的时候有哪些性能优化方式吧&#xff1a; 1.选择性能更好的获取dom元素的方法 首先&#xff0c;我们一起来看看&#xf…

常见的DOM操作有哪些

这里是修真院前端小课堂&#xff0c;本篇分析的主题是 【常见的DOM操作有哪些】 这里是修真院前端小课堂&#xff0c;每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析前端知识/技能&…

js中Dom操作

简单的Dom获取 什么是Dom操作&#xff1f; 1.DOM使一个"使程序"和"脚本"有能力的"动态地访问"和"更新文档内容结构"&#xff0c;以及"样式"的平台和语言中立的接口. 2.在HTML和JavaScript的学习中&#xff0c;DOM操作可谓时…

TypeScript Dom操作

文章目录 介绍获取元素类型断言获取多个DOM元素操作文本内容操作样式操作事件 介绍 DOM 是浏览器提供的&#xff08;浏览器特有)&#xff0c;专门用来操作网页内容的一些JS对象(API) 通过DOM操作&#xff0c;可以让Js/Ts控制页面&#xff08;(HTML)内容&#xff0c;让页面“动…

JavaScript DOM操作

文章目录 JavaScript DOM操作DOM操作元素DOM查询修改元素内容/属性获取元素节点 DOM的增删改 DOM操作CSS内联样式获得当前正在显示的样式 DOM的事件操作事件对象事件对象的属性 事件的冒泡和事件的委托事件冒泡事件委派事件的传播事件的绑定 JavaScript DOM操作 DOM操作元素 …

DOM的操作

一、DOM的操作 1、复制节点 cloneNode(deep) 参数deep是boolean类型&#xff0c;true/false true&#xff1a;表示深度复制&#xff08;将节点及其子节点都进行复制&#xff09; --- 深拷贝 false&#xff1a;表示浅复制&#xff08;只复制节点而不复制子节点&#xff09; ----…

DOM(操作)

DOM 1 作用和分类 作用&#xff1a;使用 JS 去操作 html 和浏览器 分类&#xff1a;DOM(文档对象模型)、BOM(浏览 器对象模型) DOM 是用来呈现以及与任意HTML 或 XML文档交互的API简单说&#xff1a;DOM 是浏览器提供的一套专门用来 操作网页内容 的功能DOM的作用&am…

13前端学习之WebAPI(三):节点操作、事件高级、DOM事件流、事件委托冒泡

文章目录 一、节点操作:1. 删除节点:1.2. 案例&#xff1a;删除留言 2. 赋值(克隆)节点:3. 案例:动态生成表格:3.1 案例分析:3.2 实现: 4. 创建元素的三种方式:4.1 区别:4.2 innerTHML和createElement效率对比: 5. DOM的核心总结:5.1 创建:5.2 增加:5.3 删除:5.4 改:5.5 查&…

DOM操作

今天开始进入JS的核心操作 DOM&#xff0c;DOM操作其实很简单&#xff0c;就是增删改查这几个操作&#xff0c;先看一下思维导图&#xff1a; 1.增加操作 1.新建&#xff1a; fn creatElement(标签名) 创建元素节点 fn setAttribute&#xff08;name,value&#xff09;直接设置…

JS中DOM元素的操作

一、DOM元素的获取 1&#xff09;document.getElementsByClassName ( “class”) 返回集 htmlcollection ,用法和数组一致 说明: class为DOM元素上class属性的值 2&#xff09;document.getElementById( “id” ) 功能:返回对拥有指定ID的第一个对象的引用 返回值: DOM对象 说明…

java锁结构之无锁偏向锁轻量级锁重量级锁

一、对象的本质&#xff08;锁在对象中的体现&#xff09; 1.1、对象的结构 对象由多部分构成的&#xff0c;对象头、属性字段、补齐字段等。补齐字段是指如果对象总大小不是4字节的整数倍&#xff0c;会填充上一段内存地址是之成为4的整数倍。 其中&#xff0c;对象头在对象…

简单理解重量级锁、轻量级锁、偏向锁

全文使用synchronized来说明。 synchronized给对象上锁&#xff0c;先上偏向锁&#xff0c;在上轻量级锁&#xff0c;最后上重量级锁。上什么锁&#xff0c;是jvm根据竞争程度自行变换的。 重量级锁 计算机操作系统本有Monitor对象&#xff0c;称为管程。在java里面看不到此对…

synchronized锁升级之偏向锁

目录 一、什么是偏向锁&#xff1f; 二、偏向锁原理 三、偏向锁演示 四、偏向锁的处理流程 五、偏向锁的撤销 六、偏向锁的好处 一、什么是偏向锁&#xff1f; HotSpot作者经过研究实践发现&#xff0c;在大多数情况下&#xff0c;锁不仅不存在多线程竞争&#xff0c;而…

Java无锁、偏向锁、轻量级锁、重量级锁,锁升级过程

2. 锁 2.1 无锁 Java对象刚创建时还没有任何线程来竞争&#xff0c;说明该对象处于无锁状态&#xff08;无线程竞争它&#xff09;&#xff0c;这时偏向锁标识位是0&#xff0c;锁状态是01 。 2.2 偏向锁 偏向锁是指一段同步代码一直被同一个线程所访问&#xff0c;那么该…

偏向锁的获取和撤销详解

Java SE 1.6 为了减少获得锁和释放锁带来的性能消耗&#xff0c;引入了偏向锁和轻量级锁&#xff1b;在Java SE 1.6 中&#xff0c;锁共有4种状态&#xff0c;级别从底到高依次是&#xff1a;无锁状态、偏向锁状态、轻量级锁和重量级锁状态&#xff0c;这几种状态会随着竞争情况…

一篇文章说清 :无锁、偏向锁、轻量级锁、重量级锁

文章目录 前言一、无锁二、偏向锁三、轻量级锁&#xff08;自选锁&#xff09;四、重量级锁锁升级场景 前言 JDK1.6为了减少获得锁和释放锁所带来的性能消耗&#xff0c;引入了“偏向锁”和“轻量级锁”&#xff0c;所以在JDK1.6里锁一共有四种状态&#xff0c;无锁状态&#x…

synchronized的偏向锁、轻量级锁和重量级锁

文章目录 Java对象头偏向锁批量重偏向批量撤销 轻量级锁重量级锁Monitor 原理 Java对象头 普通对象 Mark Word在64 位虚拟机中的结构为 Mark Word后三&#xff08;两&#xff09;位表示 001&#xff1a;无锁状态101&#xff1a; 偏向锁00&#xff1a; 轻量级锁10&#xff1a…