DOM基础获取元素+事件基础+操作元素

news2024/11/25 6:50:41

一.DOM简介

 

DOM,全称“Document Object Model(文档对象模型)”,它是由W3C定义的一个标准。

        在实际开发中,我们有时候需要实现鼠标移到某个元素上面时就改变颜色,或者动态添加元素或者删除元素等。其实这些效果就是通过DOM提供的方法来实现的。

        简单来说,DOM里面有很多方法,我们通过它提供的方法来操作一个页面中的某个元素,例如改变这个元素的颜色、点击这个元素实现某些效果、直接把这个元素删除等。


二.DOM树

 

        每一个元素就是一个节点,而每一个节点就是一个对象。也就是说,我们在操作元素时,其实就是把这个元素看成一个对象,然后使用这个对象的属性和方法来进行相关操作


三.获取元素

(1)getElementById()

document.getElementById("id名")
  • 返回的是一个元素对象

(2)getElementsByTagName()

document. getElementsByTagName("标签名")
  • 返回的是 获取过来元素对象的集合 以伪数组的形式存储的
  • getElementsByTagName()方法中“elements”是一个复数,写的时候别漏掉了“s”

H5新增的获取元素方式

(3)getElementsByClassName()

document. getElementsByClassName("类名")
  • 根据类名返回元素对象集合 

(4)querySelector()和querySelectorAll()

document.querySelector("选择器");
document.querySelectorAll("选择器");
  • querySelector()是根据指定选择器返回第一个元素对象
  • querySelectorAll()是根据选择器返回所有的元素对象集合

(5)getElementsByName()

document.getElementsByName("name名")

  • getElementsByName()获取的也是一个类数组,如果想要准确得到某一个元素,可以使用数组下标形式来获取。
  • getElementsByName()只用于表单元素,一般只用于单选按钮和复选框。

(6)document.title        document.body        document.documentElement

  • 返回title        body        html元素对象

三.事件基础

1.事件三要素

  • 事件源: 事件被触发的对象        按钮
  • 事件类型:如何触发 什么事件 比如鼠标点击(onclick) 鼠标经过 键盘按下
  • 事件处理程序:通过一个函数赋值的方式完成

2.执行事件的步骤

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

3.常见的鼠标事件


四.操作元素

1.改变元素内容

  • element.innerText 不识别html标签 非标准 去除空格和换行
  • element.innerHTML 能识别html标签 W3C标准 保留空格和换行

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

2.修改元素属性

  • 图片src
  • 链接href

3.表单元素的属性操作

  • value表单里面的值
  • disabled禁用
  • type表单类型(可以用于显示隐藏密码明文) 

4.修改样式属性

  • element.style        行内样式操作(行内样式权重比较高)
  • element.className 类名样式操作

鼠标经过事件 onmouseover

鼠标离开事件 onmouseout

5.自定义属性操作

获取属性值:

  • element.属性        获取内置属性
  • element.getAttribute('属性');    获取自定义属性

程序员自己添加的属性我们称为自定义属性

设置属性值:

  • element.属性='值'        设置内置属性
  • element.setAttribute('属性' , '值');       设置自定义属性

移除属性:

  • removeAtrribute('属性')

6.H5自定义属性

获取:

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

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

相关文章

揭秘bi数据分析系统:如何轻松掌握商业智能的秘密

在大数据时代的背景下,企业开始越来越重视数据分析的重要性。bi数据分析系统不仅可以帮助企业感知市场变化趋势,还可以实时监测并评估企业经营决策的效果,支持企业的持续发展。在国内,国产数据处理工具如瓴羊Quick BI等崛起&#…

揭秘:5个美国程序员与日本程序员的差异

大家好,这里是程序员晚枫。想了解更多精彩内容,快来关注程序员晚枫 今天以美国和日本程序员为例,给大家分享一下国外程序员的生活。 以下是五个美国程序员和日本程序员的的区别: 工作方式:美国程序员通常更注重自由和…

Scrum敏捷模型的三个角色!如何在线绘制Scrum敏捷模型图?

1. 什么是Scrum敏捷模型? Scrum是一种敏捷开发方法,用于管理和组织软件开发项目。它强调团队的自组织和迭代式开发,通过不断的反馈和调整来快速交付高质量的软件产品。 Scrum敏捷模型将项目分解为一系列短期的迭代周期,每一个…

查看module依赖树

可以通过两种方式 1、tasks------android------androidDependencies 打印结果如下: > Task :app:androidDependencies debug debugCompileClasspath - Dependencies for compilation --- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.3jar --- org.…

WordPress 子主题(child theme)介绍

经常开发WordPress主题的朋友往往会遇到一个困惑,虽然主题提供了默认设置,也自带了不少自定义功能,可以满足大部分的场景使用,但毕竟众口难调,一些个性化的需求难免无法满足,这时就必须得修改主题文件来实现…

java实现随机生成验证码

import java.util.concurrent.ThreadLocalRandom;/* 生成验证码的工具 可动态配置验证码长度*/ public class CodeUtils {public static void main(String[] args) {//随机生成5个长度为4的验证码for (int i 0; i < 5; i) {System.out.println(CodeUtils.getCode(4));}for …

开关电源控制--电流纹波率

什么是电流纹波率 电流纹波率&#xff08;Current Ripple Ratio&#xff09;是开关电源控制中一个重要的参数。它表示输出电流的波动程度&#xff0c;通常以百分比表示。 当电流纹波率为0.4时&#xff0c;意味着输出电流的波动相对较小&#xff0c;波动范围约为输出电流的0.4…

代理设计模式——静态代理和动态代理

代理模式 在代理模式&#xff08;Proxy Pattern&#xff09;中&#xff0c;一个类代表另一个类的功能。这种类型的设计模式属于结构型模式&#xff0c;在代理模式中&#xff0c;我们创建具有现有对象的对象&#xff0c;以便向外界提供功能接口。 意图&#xff1a;为其他对象提…

gradle 命令行单元测试执行问题

文章目录 问题&#xff1a;命令行 执行失败最终解决方案&#xff08;1&#xff09;ADB命令&#xff08;2&#xff09;Java 环境配置 问题&#xff1a;命令行 执行失败 命令行 执行测试命令 无法使用&#xff08;之前还能用的。没有任何改动&#xff0c;又不能用了&#xff09; …

“他“是怎么拿offer的?全网最全,性能测试面试题+答案(超全整理)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、什么是负载测试…

低功耗LoRaWAN国产低功耗LoRa+RF射频前端芯片XD6500S

目录 典型应用XD6500S简介芯片特性 LoRa系列选型参考 LoRa是为低数据速率、远距离距离和超低功耗而优化的扩频协议&#xff0c;用于LPWAN应用程序的通信。 典型应用 一、智慧农业   智慧农业大田解决方案利用传感设备、自动化控制设备、气象站实时监测采集田间土壤墒情、气象…

用spinal写《自己动手写cpu》中的代码--pc_reg模块

一 预期代码 二 spinal代码 package oriimport spinal.core._class pc_reg(width: Int) extends Component{val io = new Bundle {val pc = out UInt(width bits)val ce = out UInt (1 bits)val clk = in Bool()val rst = in Bool()}val ceClkDomain = ClockDomain(clock = i…

使用openssl生成https证书并应用配置到Nginx上

目录 内容概要 签发证书 Nginx配置 内容概要 使用openssl工具生成自签的证书文件&#xff0c;应用和配置nginx&#xff0c;实现https访问应用。 签发证书 1.创建密钥 openssl genrsa -des3 -out server.key 2048 注意&#xff1a;生成私钥&#xff0c;需要提供一个至少4位…

python中2等于2.0吗,python中【1:2】

本篇文章给大家谈谈python中2等于2.0吗&#xff0c;以及python中【1:2】&#xff0c;希望对各位有所帮助&#xff0c;不要忘了收藏本站喔。 变量和赋值 Python中的变量不需要声明, 直接定义即可. 会在初始化的时候决定变量的 “类型” 使用 来进行初始化和赋值操作 定义变量时…

字母串哈希模板题题解:哈希+前缀和+进制转换+预处理指数函数

一、链接 841. 字符串哈希 二、题目 给定一个长度为 nn 的字符串&#xff0c;再给定 mm 个询问&#xff0c;每个询问包含四个整数 l1,r1,l2,r2l1,r1,l2,r2&#xff0c;请你判断 [l1,r1][l1,r1] 和 [l2,r2][l2,r2] 这两个区间所包含的字符串子串是否完全相同。 字符串中只包…

UEFI build报错:‘build‘ is not recognized as an internal or external command

UEFI学习&#xff0c;某一次进行build时&#xff0c;提示&#xff1a; build is not recognized as an internal or external command,operable program or batch file. 用的命令是&#xff1a; C:\UEFIWorkspace>build -a X64 -p edk2\OvmfPkg\OvmfPkgX64.dsc -b NOOPT -…

k8s学习day03

第五章 Pod详解 本章节将详细介绍Pod资源的各种配置&#xff08;yaml&#xff09;和原理。 Pod介绍 Pod结构 每个Pod中都可以包含一个或者多个容器&#xff0c;这些容器可以分为两类&#xff1a; 用户程序所在的容器&#xff0c;数量可多可少 Pause容器&#xff0c;这是每个…

【Python学习】Python大版本新增内容精选

&#x1f308;据说&#xff0c;看我文章时 关注、点赞、收藏 的 帅哥美女们 心情都会不自觉的好起来。 前言&#xff1a; &#x1f9e1;作者简介&#xff1a;大家好我是 user_from_future &#xff0c;意思是 “ 来自未来的用户 ” &#xff0c;寓意着未来的自己一定很棒~ ✨个…

在生产环境中部署Elasticsearch:最佳实践和故障排除技巧———索引与数据上传(二)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

MQ百万级数据堆积如何处理

问题分析 如果&#xff0c;如果哈&#xff0c;RabbitMQ或者是kafka&#xff0c;这些消息队列出现大量的数据堆积&#xff0c;乃至是成千上万&#xff0c;我们作为一个开发工程师或者是架构师&#xff0c;我们如何去解决这种突发情况呢&#xff1f;可能大家会想&#xff0c;怎么…