【前端 11】初探DOM

news2024/11/23 23:54:45

JavaScript 对象 - DOM 初探

在Web开发中,DOM(Document Object Model,文档对象模型)是一个至关重要的概念。它不仅仅是一个API,更是Web页面与JavaScript代码之间的桥梁,允许开发者通过编程的方式动态地访问和更新网页的内容、结构和样式。下面,我们将深入探讨DOM的各个方面,包括如何获取DOM元素、操作DOM元素以及通过DOM实现交互。
请添加图片描述

DOM 的基本概念

DOM将HTML或XML文档抽象为一个由节点(Nodes)和对象(Objects)组成的结构。每个节点都是文档树中的一个部分,而对象则提供了对这些节点的操作接口。主要的节点类型包括:

  • Document:整个文档对象,代表整个HTML文档。
  • Element:元素对象,如<div><p>等HTML标签。
  • Attribute:属性对象,如元素的idclass等。
  • Text:文本对象,表示元素中的文本内容。
  • Comment:注释对象,表示HTML中的注释内容。
获取DOM元素

在JavaScript中,可以通过多种方式来获取DOM中的元素。最常见的方法是通过document对象提供的API:

  1. document.getElementById(id):通过元素的id属性获取单个元素对象。由于id在页面中是唯一的,因此这个方法只会返回一个元素。

    javascript复制代码
    
    var elem = document.getElementById('myElement');
    
  2. document.getElementsByTagName(tagName):根据标签名获取一个元素集合(HTMLCollection)。返回的是所有指定标签名的元素数组。

    var elems = document.getElementsByTagName('p');  
    // 遍历所有<p>元素  
    for (var i = 0; i < elems.length; i++) {  
        console.log(elems[i].textContent);  
    }
    
  3. document.getElementsByName(name):根据元素的name属性获取元素集合。这个方法常用于获取表单元素。

  4. document.getElementsByClassName(className):根据元素的class属性值获取元素集合。由于一个元素可以有多个类,这个方法非常有用。

    var elems = document.getElementsByClassName('myClass');  
    // 遍历所有具有'myClass'类的元素  
    for (var i = 0; i < elems.length; i++) {  
        console.log(elems[i].textContent);  
    }
    
操作DOM元素

获取到DOM元素后,我们可以对这些元素进行各种操作,如更改其内容、样式或属性。

  • 更改HTML内容:使用innerHTML属性可以获取或设置元素内部的HTML内容。

    javascript复制代码
    
    elem.innerHTML = '<strong>新的内容</strong>';
    
  • 更改CSS样式:可以通过修改元素的style属性来更改其CSS样式。

    elem.style.color = 'red';  
    elem.style.fontSize = '20px';
    
  • 操作标签属性:除了上述的innerHTMLstyle,还可以直接访问和修改元素的其他属性,如src(用于图片、视频等媒体文件)、checked(用于复选框等表单元素)。

    // 更改图片路径  
    var img = document.getElementById('myImage');  
    img.src = 'new-image-path.jpg';  
     
    // 更改复选框的选中状态  
    var checkbox = document.getElementById('myCheckbox');  
    checkbox.checked = true;
    
DOM 事件处理

DOM事件是用户与网页交互的基础。通过监听和响应DOM事件,可以创建动态和交互式的Web应用程序。JavaScript提供了addEventListener方法来为元素添加事件监听器。

elem.addEventListener('click', function() {  
    alert('元素被点击了!');  
});

这个示例展示了如何为元素添加一个点击事件的监听器,当元素被点击时,会弹出一个警告框。

总结

DOM是Web开发中不可或缺的一部分,它使得JavaScript能够操作HTML文档的结构、内容和样式。通过理解DOM的基本概念、学习如何获取和操作DOM元素,以及掌握DOM事件处理,你可以创建出更加丰富和交互式的Web应用程序。希望这篇文章能够帮助你更深入地理解DOM,并在你的开发实践中发挥它的巨大潜力。

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

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

相关文章

名家笔下的端午

文章目录 [北宋]苏轼《浣溪沙端午》[北宋]欧阳修《渔家傲五月榴花妖艳烘》梁实秋汪曾祺迟子建谈正衡苏童[北宋]苏轼《浣溪沙端午》 轻汗微微透碧纨,明朝端午浴芳兰。流香涨腻满晴川。 彩线轻缠红玉臂,小符斜挂绿云鬟。佳人相见一千年。 苏轼被贬惠州时,唯有王朝云矢志跟随…

influxdb1.8数据备份和恢复、自动备份(记录版)

一、数据备份 这里备份到 home 目录下&#xff0c;windows 和 linux 随意 influxd restore -portable <备份目录路径> influxd restore -portable /home 执行效果图&#xff1a; 二、数据恢复 influxd restore -portable <备份目录> influxd restore -port…

昇思25天学习打卡营第21天|Pix2Pix实现图像转换

相关知识 图像翻译 图像翻译Image translation是一种计算机视觉任务&#xff0c;旨在将一种图像转换为另一种图像。典型的任务包括&#xff1a;图像到图像的转换如白天到黑夜&#xff0c;风格迁移&#xff0c;图像修复。 CGAN CGAN在GAN的基础上引入了条件信息&#xff0c;…

Visual Studio 2022新建 cmake 工程测试 opencv helloworld

1. 参考博客&#xff1a; 1.1. https://blog.csdn.net/yangSHU21/article/details/130237669( 利用OpenCV把一幅彩色图像转换成灰度图 )( vs2022_cmake_test.cpp 中的代码用的此博客的&#xff0c;就改了下图片文件路径而已 ) 2. 检查 Visual Studio 2022是否支持 cmake&#…

鸿蒙OpenHarmony Native API【结构体】 头文件

OH_Drawing_BitmapFormat Overview Related Modules: [Drawing] Description: 结构体用于描述位图像素的格式&#xff0c;包括颜色类型和透明度类型 Since: 8 Version: 1.0 Summary Public Attributes Public Attribute NameDescriptioncolorFormatalphaFormat De…

网络基础之(11)优秀学习资料

网络基础之(11)优秀学习资料 Author&#xff1a;Once Day Date: 2024年7月27日 漫漫长路&#xff0c;有人对你笑过嘛… 全系列文档可参考专栏&#xff1a;通信网络技术_Once-Day的博客-CSDN博客。 参考文档&#xff1a; 网络工程初学者的学习方法及成长之路&#xff08;红…

关于虚拟机在桥接模式下连接网络问题的记录

2024年7月28日03:49:19 环境&#xff1a;ubuntu22.04 desktop 虚拟机 问题&#xff1a;使用wget下载nginx安装包时出现问题&#xff0c;443端口持续无连接成功回复。 随后在确定配置ip无问题&#xff0c;检查了其正常访问互联网&#xff0c;随后试图ping niginx网站&#xff…

Removable Access Tool v1.4:你的USB设备安全守护者!

&#x1f680; 大家好&#xff0c;今天电脑天空给大家带来一款超级实用的数据保护软件——Removable Access Tool&#xff08;Ratool&#xff09; v1.4&#xff01; 这不仅仅是一款软件&#xff0c;更是你数据安全的守护神&#xff01; &#x1f512; Ratool简介&#xff1a;这…

Unity横板动作游戏 - 设置瓷砖地图(Tilemap)和叠层

场景绘制和叠层设置 设置地图 选择地图的精灵&#xff0c;在精灵图集的检查器中进行如下修改。 切割地图 点击 Sprite Editor 进行编辑&#xff0c;并按照每个格子16x16进行切割。 设置瓦片调色盘 打开瓦片调色盘并新建一个调色盘&#xff0c;可以在Assets中创建一个Palett…

C语言程序设计之数学函数篇

程序设计之数学函数 问题1_1代码1_1结果1_1 问题1_2代码1_2结果1 _2 问题1_3代码1_3结果1_3 问题1_1 函数 f u n fun fun 的功能是计算&#xff1a; s ln ⁡ ( 1 ) ln ⁡ ( 2 ) ln ⁡ ( 3 ) ⋯ ln ⁡ ( n ) s\sqrt{\ln(1)\ \ \ln(2)\ \ \ln(3)\ \ \cdots \ \ \ln(n)\ } …

基于Python的房产数据分析系统的设计与实现(源码+lw+部署文档+讲解等)

文章目录&#xff1a; 目录 详细视频演示 设计文档详细参考 技术开发的参考技术栈&#xff01; 2.1 Python语言 2.2 Django框架 2.3 MySQL 2.4 Hadoop介绍 2.5 Scrapy介绍 4.2 系统结构设计 4.3 数据库设计 界面设计与功能实现 5.1系统登录注册实现 5.2管理员模块…

计算机毕业设计LSTM+Tensorflow股票分析预测 基金分析预测 股票爬虫 大数据毕业设计 深度学习 机器学习 数据可视化 人工智能

|-- 项目 |-- db.sqlite3 数据库相关 重要 想看数据&#xff0c;可以用navicat打开 |-- requirements.txt 项目依赖库&#xff0c;可以理解为部分技术栈之类的 |-- data 原始数据文件 |-- data 每个股票的模型保存位置 |-- app 主要代码文件夹 | |-- mod…

PyCharm 常用 的插件

Material Theme UI Lite&#xff1a;‌提供多种不同的页面风格&#xff0c;‌为PyCharm界面增添个性化元素。‌Chinese (Simplified) Language Pack&#xff1a;‌为中文用户提供简体中文的界面、‌菜单、‌提示信息&#xff0c;‌提升使用体验。‌Tabnine&#xff1a;‌基于人…

【Django】 js实现动态赋值、显示show隐藏hide效果

文章目录 需要达到的前端效果预览&#xff1a;实现步骤复制bootstrp代码&#xff08;buttons&#xff09;复制bootstrp代码&#xff08;Alert警告框&#xff09;写js测试效果 需要达到的前端效果预览&#xff1a; {% load static %} <!DOCTYPE html> <html lang"…

day06 项目实践:router,axios

vue组件的生命周期钩子 今天几乎没有讲什么新内容&#xff0c;就是一起做项目&#xff0c;只有一个小小的知识点&#xff0c;就是关于vue组件的生命周期钩子&#xff0c;其中最重要的四个函数—— beforeCreate()&#xff1a;组件创建之间执行 created()&#xff1a;组件创建…

05。拿捏ArkTS 第 3 天 --- 对象、联合类型、枚举

1&#xff0c;什么是对象&#xff1f;对象是干什么的&#xff1f; &#xff5e;用来存储不同类型数据的容器 &#xff5e;用来描述物体的特征和行为 //特征就是属性&#xff0c;行为就是方法&#xff08;对象内的函数&#xff09; 2&#xff0c;对象的基本样式是&#xff1f; …

LangChain4j-RAG高级-核心概念

RetrievalAugmentor整体概念 简单总结一下 LangChain4j中对于RetrievalAugmentor这里官方描述的比较模糊, 只在 DefaultRetrievalAugmentor章节给出来了一个灵感来源的文章(LangChain框架中的设计思路)和一个研究报告, 有兴趣可以看一下: Deconstructing RAGhttps://arxiv.o…

Greenplum的诞生与成长过程

Greenplum 成立与早期发展 Greenplum的诞生于早起发展 Greenplum于2003年在美国硅谷成立&#xff0c;在2006年发布了基于PostgreSQL(8.x)的MPP数据库产品&#xff0c;作为与公司同名的MPP数据库&#xff0c;专为分析和管理海量数据集而设计&#xff0c;支持复杂的数据分析和商…

0724,select +tcp 聊天室喵

目录 TCP协议喵 723__01&#xff1a;使用select实现一个基于UDP的一对一即时聊天程序。 001: 002: TIMEWAI OR BUG 721作业&#xff1a; 01&#xff1a;在一对一聊天的基础上&#xff0c;使用select实现一对多的回显服务。&#xff08;回显服务即接收到客户端发送的数…

布尔盲注——多种方式实现及利用burpsuite爆破

目录 1、判断闭合符类型 2、爆数据库长度 3、查询库名 手动注入 burpsuite爆破 方法一&#xff1a;用ASCII码值转化爆破 方法二&#xff1a;left方法直接爆破字母 方法三&#xff1a;if方法爆破注入&#xff08;最简单&#xff09; 4、爆破表名 5、爆破具体值 当我们改变前端…