【JavaScript 】DOM操作快速入门

news2024/11/20 6:24:35

目录

1.概述

2.操作

2.1.document对象

2.2.选中元素

2.2.1.get

2.2.2.query

2.3.操作属性

2.4.添加响应

2.5.修改文本


1.概述

在Web开发中,JavaScript(JS)的DOM(Document Object Model,文档对象模型)是一种用来表示网页文档结构的编程接口。它将整个文档抽象为一个树形结构,每个节点都是文档中的一个元素,开发者可以使用JavaScript来操作这个树形结构,从而改变网页的内容、结构和样式。

示例:

一个document包含一个HTML属性,HTML属性中包含两个成员变量(head、body),head包含title成员变量,body包含h1、p、p成员变量。通过JavaScript可以操作DOM。

2.操作

2.1.document对象

JavaScript中内置一个document对象,该对象指向整个DOM,用来表示当前 HTML 文档的对象。并提供了访问和操作网页内容的方法和属性。document对象是所有 DOM 对象的根节点,它代表了整个 HTML 文档,包括页面的内容、结构和样式。

示例:

2.2.选中元素

2.2.1.get

document对象内置多个get方法获取HTML中的元素

var elementById = document.getElementById('elementId'); // 通过id获取元素
var elementsByClass = document.getElementsByClassName('className'); // 通过类名获取元素(返回NodeList)
var elementsByTag = document.getElementsByTagName('tagName'); // 通过标签名获取元素(返回NodeList)

通过标签名选中:

通过类名选中:

2.2.2.query

quary方法,默认通过标签进行匹配,想通过ID匹配,需要跟上 #

selector,选择上下文中的首个。

selectorAll,选择上下文中的所有。

选择特定id下的元素:

2.3.操作属性

在DOM编程中,你可以使用JavaScript来操作HTML元素的属性。以下是一些常见的DOM属性操作方法:

1. 获取属性的值:

通过DOM,你可以获取HTML元素的属性值。例如,获取一个元素的ID属性值:

var element = document.getElementById('myElement');
var id = element.id; // 获取元素的ID属性值

2. 设置属性的值:

你也可以使用DOM来设置HTML元素的属性值。例如,设置一个元素的类名属性值:

var element = document.getElementById('myElement');
element.className = 'newClassName'; // 设置元素的类名属性值

3. 获取和设置自定义属性(data-属性):

在HTML5中,你可以使用data-*属性来存储自定义数据。通过DOM,你可以获取和设置这些自定义属性的值:

var element = document.getElementById('myElement');
var customDataValue = element.getAttribute('data-custom'); // 获取自定义属性的值
element.setAttribute('data-custom', 'new value'); // 设置自定义属性的值

4. 获取和设置其他属性:

除了上述示例中提到的属性,你也可以获取和设置元素的其他属性,比如srchrefvalue等等。

var image = document.getElementById('myImage');
var imageUrl = image.src; // 获取图片的URL
image.src = 'newImage.jpg'; // 设置图片的URL

var link = document.getElementById('myLink');
var linkUrl = link.href; // 获取链接的URL
link.href = 'newPage.html'; // 设置链接的URL

var input = document.getElementById('myInput');
var inputValue = input.value; // 获取输入框的值
input.value = 'new value'; // 设置输入框的值

5. 删除属性:

你可以使用removeAttribute()方法删除元素的属性:

var element = document.getElementById('myElement');
element.removeAttribute('data-custom'); // 删除自定义属性

2.4.添加响应

在DOM编程中,你可以使用JavaScript为HTML元素添加事件监听器,从而响应用户的交互。addEventListener 方法可以用于在指定元素上添加事件监听器。这个方法有三个参数:事件类型、回调函数和一个可选的布尔值,用于指定事件是否在捕获阶段(true)或冒泡阶段(false)触发。通常,我们使用冒泡阶段。

document.querySelector("button").addEventListener("click",function(){
document.querySelector("h1").classList.toggle("H1");
});

2.5.修改文本

在DOM编程中,你可以使用JavaScript来修改HTML元素的文本内容。以下是一些常见的方法,用于在DOM元素上修改文本内容:

1. 使用 textContent 属性:

textContent 属性用于获取或设置一个元素及其所有后代元素的文本内容。这个属性会返回元素内的所有文本,包括子元素的文本,并且它不会解析或执行HTML代码。

var element = document.getElementById('myElement');
element.textContent = '新的文本内容';

2. 使用 innerText 属性:

innerText 属性与 textContent 类似,用于获取或设置元素的文本内容。不同之处在于,innerText 只会返回可见文本,会忽略隐藏元素和通过CSS设置为不可见的元素。

var element = document.getElementById('myElement');
element.innerText = '新的文本内容';

3. 使用 innerHTML 属性:

innerHTML 属性用于获取或设置元素的HTML内容,包括元素的标签和子元素。这个属性可以用于修改元素的文本和结构,但要注意,直接设置 innerHTML 可能会引起安全问题,因为它会执行包含在字符串中的任意脚本。

var element = document.getElementById('myElement');
element.innerHTML = '<strong>新的文本内容</strong>';

4. 使用 createTextNodeappendChild 方法:

你可以使用 document.createTextNode(text) 方法创建一个文本节点,然后使用 appendChild() 方法将它添加到元素中。这种方法更安全,因为它不会执行脚本。

var element = document.getElementById('myElement');
var newText = document.createTextNode('新的文本内容');
element.appendChild(newText);

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

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

相关文章

什么时候应该将方法声明为虚拟函数

如题&#xff0c;什么时候需要将一个类的方法声明为虚函数(virtual)&#xff0c;这个问题涵盖技术和哲学两个层面。 从技术角度来说&#xff0c;如果你希望在运行阶段(而非编译阶段)根据对象的实际类型来调用方法时&#xff0c;就需要将它声明为一个虚拟函数。 但还有一个哲学…

一碗航天品质中国面:康师傅的民族传承与味道引领

在变幻莫测的食品市场&#xff0c;品牌要保持长久领先的秘诀&#xff0c;还是在品质。 在人类工业领域&#xff0c;堪称品质“天花板”的&#xff0c;“军工品质”算一个&#xff0c;“航天品质”则更胜一筹。 而作为行业龙头&#xff0c;康师傅携手中国航天事业已有7年。 硬…

品牌加盟商做信息展示预约小程序的效果如何

很多行业都有中部或头部品牌&#xff0c;对实体品牌企业来说想要快速高效发展&#xff0c;除了多地直营店外还需要招募加盟商进而提升生意营收。 因此线上渠道变得尤为重要&#xff0c;除了网站外&#xff0c;小程序是连接多平台生态很好的工具&#xff0c;随时打开、直接触达…

Kubernetes 概述以及Kubernetes 集群架构与组件

目录 Kubernetes概述 K8S 是什么 为什么要用 K8S K8S 的特性 Kubernetes 集群架构与组件 核心组件 Master 组件 Node 组件 ​编辑 Kubernetes 核心概念 常见的K8S按照部署方式 Kubernetes概述 K8S 是什么 K8S 的全称为 Kubernetes,Kubernetes 是一个可移植、可扩…

基于SSM的在校学习网站设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

代码浅析DLIO(一)---整体框架梳理

0. 简介 我们刚刚了解过DLIO的整个流程&#xff0c;我们发现相比于Point-LIO而言&#xff0c;这个方法更适合我们去学习理解&#xff0c;同时官方给出的结果来看DLIO的结果明显好于现在的主流方法&#xff0c;当然指的一提的是&#xff0c;这个DLIO是必须需要六轴IMU的&#x…

基于SpringBoot的二手车交易系统的设计与实现

目录 前言 一、技术栈 二、系统功能介绍 管理员功能实现 商家管理 公告信息管理 论坛管理 商家功能实现 汽车管理 汽车留言管理 论坛管理 用户功能实现 汽车信息 在线论坛 公告信息 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 如今社会上各行…

中科驭数北京新址揭幕,中关村壹号热土不变

因研发和运营团队规模增长&#xff0c;原办公空间已不能满足需求&#xff0c;近日中科驭数北京中关村办公室从中关村壹号A3座搬迁至中关村壹号D2座。 中科驭数自成立以来&#xff0c;一直专注聚焦算力基础设施核心芯片研发&#xff0c;是DPU芯片领域的国家专精特新小巨人企业&…

Mybatis查树的两种写法

Mybatis查树必须会&#xff0c;它有两种写法&#xff1a; 1、联表查询。只访问一次数据库。 2、递归查询。访问多次数据库。 1、联表查询&#xff08;推荐&#xff09; 表结构&#xff1a; create table common_region (region_id int(11),pr_region_id int(11),region_name …

1300*C. Social Distance(贪心构造)

Problem - 1367C - Codeforces 解析&#xff1a; 统计出所有连续0序列&#xff0c;并且记录其左右两侧有没有1&#xff0c;然后对于四种情况分别判断即可。 #include<bits/stdc.h> using namespace std; int t,n,k; signed main(){scanf("%d",&t);while(…

Leetcode刷题详解——最小路径和

1. 题目链接&#xff1a;64. 最小路径和 2. 题目描述&#xff1a; 给定一个包含非负整数的 *m* x *n* 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 **说明&#xff1a;**每次只能向下或者向右移动一步。 示例 1&#xf…

一共就五个名额,三个全给一个人?我表示不理解

我对csdn举办的#你写过的最蠢的代码是/这个话题的活动表示质疑&#xff01;&#xff01;&#xff01;&#xff01; 先来看看评选规则&#xff1a; 再来看看评分标准&#xff1a; 接下来看看获奖选手&#xff1a; 这三人有啥区别&#xff1f;

Seata入门系列【16】XA模式入门案例

1 前言 在之前&#xff0c;我们试过了AT、TCC 模式&#xff0c;Seata 还支持XA 模式。 2 XA 协议 XA协议由Tuxedo首先提出的&#xff0c;并交给X/Open组织&#xff0c;作为资源管理器&#xff08;数据库&#xff09;与事务管理器的接口标准。Oracle、Informix、DB2和Sybase等…

钡铼技术 工控机中的X86和ARM处理器:哪个更具可扩展性?

X86和ARM是两种不同的处理器架构&#xff0c;它们在工控机中的应用也有所不同。 X86架构的处理器是英特尔公司和AMD公司生产的&#xff0c;它们主要应用于个人电脑和服务器等领域。X86架构的处理器具有良好的通用性和兼容性&#xff0c;可以运行各种操作系统和应用软件。X86架…

虚拟内存之请求分页管理

一、与基本分页存储管理的区别 程序执行过程中&#xff0c;访问信息不在内存时&#xff0c;OS需要从外存调入内存。——>调页功能 内存空间不够时&#xff0c;OS需要将内存中暂时用不到的信息换出到外存。——>页面置换功能 二、页表机制 1.页表&#xff1a;需要知道页面…

Sub-1G物联网五大应用场景及主流无线模组推荐

在不断发展的无线通信领域里&#xff0c;Sub-1G已成为一门非常重要的无线通信技术&#xff0c;具备一系列独特的优势&#xff0c;被广泛应用在各种物联网设备中。 本文旨在阐明Sub-1G无线通信技术是什么&#xff0c;与2.4G通信技术对比它有什么优势。此外&#xff0c;信驰达科…

【LeetCode刷题日志】27.移除元素

&#x1f388;个人主页&#xff1a;库库的里昂 &#x1f390;C/C领域新星创作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏✨收录专栏&#xff1a;LeetCode 刷题日志&#x1f91d;希望作者的文章能对你有所帮助&#xff0c;有不足的地方请在评论区留言指正&#xff0c;…

linux驱动开发-点亮第一个led灯

linux驱动开发-点亮第一个led灯 一.背景知识二.如何写驱动程序三.实战演练3.1 查询原理图3.2 配置引脚为gpio模式3.3 配置引脚为输出模式3.4 DR寄存器 四.代码实例4.1 驱动层4.2 应用层 一.背景知识 我们这里使用的是百问网的imx_6ullpro的开发板。这里和裸机不同的是&#xf…

Flash模拟EEPROM原理浅析

根据ST的手册&#xff0c;我们可以看到&#xff0c;外挂EEPROM和Dflash模拟EEPROM&#xff0c;区别如下&#xff1a; 很明显&#xff0c;模拟EEprom的写入速度要远远快于外挂eeprom(有数据传输机制)&#xff1b; 其次&#xff0c;外挂EEPROM不需要擦除即可实现写入数据&#xf…