DOM 基本操作 - 事件基础


theme: smartblue

一、事件概述

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

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

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

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

```

<script>//点击一个按钮,弹出对话框
//事件是有三部分组成: 事件源、事件类型、事件处理程序,我们也称为事件三要素
//(1)事件源事件被触发的对象谁按钮
var btn = document.getElementById('btn');
//(2)事件类型如何触发什么事件,比如鼠标点击(onclick)还是鼠标经过 还是键盘按下
//(3)事件处理程序通过一个函数赋值的方式完成
btn.onclick= function(){alert("clicked")
}
</script>

```

二、 常见鼠标事件

2024-07-10_22-02-47.png

三、 操作元素

3.1 改变元素内容

element.innerText

从起始位置到终止位置的内容,但它去除 html标签,同时空格和换行也会去掉

element.innerHTML

起始位置到终止位置的全部内容,包括html标签,同时保留空格和换行

```

<div id="div1"></div>
<div id="div2"></div><script>// 写var div1 = document.querySelector("#div1")var div2 = document.querySelector("#div2")div1.innerText = "<strong>innerText</strong>"div2.innerHTML = "<strong>innerHTML</strong>"// 读console.log(div2.innerText)console.log(div2.innerHTML)</script>

``` innerText和innerHTML的区别

  1. innerText不识别html标签非标准 去除空格和换行
  2. innerHTML 识别html标签 W3C标准 保留空格和换行的

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

2024-07-10_22-25-31.png

3.2 改变属性内容

1.innerrext、innerHTM 改变元素内容

2.src、href

3.id、alt、title

```

<img src = "./1.jpg">
<button id="btn">change image</button><script>var btn = document.querySelector("#btn")var img = document.querySelector("img")btn.onclick = ()=>{img.src = "./2.jpg"}
</script>

```

3.3 改变表单的属性

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

type、value、checked、selected、disabled

```

<input type="text" value="please input">
<button id="change">change value</button>
<button id="disable">change value</button>
<script>// 获取元素var changeBtn =  document.querySelector("#change")var disableBtn =  document.querySelector("#disable")var input =  document.querySelector("input")// 注册事件,处理程序changeBtn.onclick = ()=>{input.value = "changed"}disableBtn.onclick = ()=>{input.disabled = true}
</script>

```

3.4 改变样式属性

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

1.element.style行内样式操作

2.element.className 类名样式操作

```

<button id="change">change</button>
<script>// 获取元素var changeBtn =  document.querySelector("#change")var div =  document.querySelector("div")changeBtn.onclick = ()=>{div.style.backgroundColor = 'black'div.style.width = '250px'div.className= 'change div'}
</script><style>div{width: 200px;height: 200px;background-color: red;}div{width: 100px;height: 100px;background-color: yellow;}
</style>

```

注意:

  1. Js 修改 style 样式操作, 产生的是行内样式,css 权重比较高
  2. Js 里面的样式采取驼峰命名法 比如 fontsize、backgroundcolor
  3. className 会直接更改元素的类名,会覆盖原先的类名; 如果想保留原先的类名,可以做多类名选择器

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

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

相关文章

libvirt qemu添加新类型磁盘格式

目录 前言 1 qemu部分 1.1 磁盘格式驱动创建 1.2 json文件创建数据结构对象&#xff1a; 2 libvirt部分&#xff1a; 2.1 对应关系设置 2.2参设向指令格式转换 前言 qemu中有很多虚拟机磁盘格式&#xff0c;比如较为熟悉的qcow2&#xff0c;luks&#xff0c;r…

矩阵分解及其在机器学习中的应用

阵分解是一种广泛应用于数据挖掘和机器学习领域的技术&#xff0c;它通过将一个高维数据集分解为多个低维的数据集&#xff0c;以降低数据的复杂性、提高计算效率&#xff0c;并发现数据中的隐含结构。本文将详细介绍矩阵分解的基本概念、主要方法及其在机器学习中的应用。 一、…

fastadmin框架后台列表固定第一行列表固定头部

在列表中&#xff0c;如果列表字段很多&#xff0c;并且每页数量很多&#xff0c;往下拉的时候就不好辨别数据是哪个字段的&#xff0c;对用户造成不好的浏览体验。 通过以下方法&#xff0c;可以实现将列表的第一行&#xff0c;也就是头部&#xff0c;固定在第一行显示&#…

14-62 剑和诗人36 - 混合专家 (MoE) 扩展 AI 视野

了解混合专家 (MoE) 混合专家 (MoE) 是一种机器学习技术&#xff0c;它将多个“专家”神经网络模型组合成一个更大的模型。MoE 的目标是通过组合专业专家&#xff08;每个专家专注于不同的子领域&#xff09;来提高 AI 系统的准确性和能力。 MoE 模型的一些关键特征&#xff1…

探索Kotlin:从K1到K2

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 嘿&#xff0c;小伙伴们&#xff01;今天我们来聊聊Kotlin&#xff0c;这个在安卓开发圈里越来越火的编程语言。…

苹果手机抹机(马来西亚)操作步骤

苹果手机抹机&#xff08;马来西亚&#xff09;操作步骤 操作环境操作步骤 操作环境 苹果6s&#xff0c;没有插卡&#xff0c;就连接上了一个wifi 操作步骤

错位情缘悬疑升级

✨&#x1f525;【错位情缘&#xff0c;悬疑升级&#xff01;关芝芝与黄牡丹的惊世婚约】&#x1f525;✨在这个迷雾重重的剧场&#xff0c;一场前所未有的错位大戏正悄然上演&#xff01;&#x1f440; 你没看错&#xff0c;昔日兄弟的前女友关芝芝&#xff0c;竟摇身一变成了…

FastAPI 学习之路(三十七)元数据和文档 URL

实现前的效果 那么如何实现呢&#xff0c;第一种方式如下&#xff1a; from routers.items import item_router from routers.users import user_router""" 自定义FastApi应用中的元数据配置Title&#xff1a;在 OpenAPI 和自动 API 文档用户界面中作为 API 的…

【SGX系列教程】(五)enclave多线程测试,以及EPC内存测试

文章目录 一. 概述二. 原理分析2.1 多线程在Enclave中的实现流程2.2 多线程和EPC内存分配之间的冲突2.3 解决多线程和EPC内存分配冲突的策略 三. 源码分析3.1 代码结构3.2 源码3.2.1 App文件夹3.2.2 Enclave文件夹3.2.3 Makefile 3.3 总结 四.感谢支持 一. 概述 在Intel SGX环境…

从零开始学习嵌入式----C语言框架梳理与后期规划

目录 一、环境搭建. 二、见解 三、C语言框架梳理 四、嵌入式学习规划流程图&#xff08;学习顺序可能有变&#xff09; 一、环境搭建. C语言是一门编程语言&#xff0c;在学习的时候要准备好环境。我个人比较喜欢用VS,具体怎么安装请百度。学习C语言的时候&#xff0c;切忌…

树莓派pico入坑笔记,ssd1306使用

目录 说明 后附进阶玩法&#xff1a;显示中文&#xff0c;外加简单库实现 官方模块使用 使用样例 方法说明 下面是绘图支持的方法 进阶玩法&#xff0c;显示中文 方法&#xff0c;对汉字取字模&#xff0c;然后按像素对字模进行显示 说明 circuitpython8.x使用iic接口驱…

类和对象——【运算符重载】

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件iostream的声明&#xff0c;使用时请自行添加。 博主主页&#xff1a;Yan. yan.                        …

宏任务与微任务对比【前端异步】

目录 简介微任务与宏任务的基本概念宏任务&#xff08;Macrotasks&#xff09;微任务&#xff08;Microtasks&#xff09;宏任务示例微任务示例微任务与宏任务的执行时序 结论 简介 在JavaScript的异步编程中&#xff0c;理解事件循环&#xff08;Event Loop&#xff09;是至关…

Qt+MySQL实现社团管理系统

开发环境 ● Qt 5.14.1 ● Win10 ● Mysql 5.7.28 系统介绍 系统主要实现的功能如下图所示 社团管理系统主要包含了以下几个亮点功能 轮播图显示社团信息支持excel形式的导入导出学生信息权限控制&#xff08;管理员、超级管理员、用户&#xff09; 系统效果展示 登录界面…

前端工程化(01):Webpack、Gulp、Grunt三大自动化构建工具对比

10年前端开发和UI设计老司机→贝格前端工场&#xff0c;为您分享。本期介绍三款自动化构建工具&#xff0c;看看他们的工作原理和差异化&#xff0c;帮助你来选择。 Webpack、Gulp和Grunt都是前端构建工具&#xff0c;用于优化前端开发流程和提高开发效率。它们都可以自动化执…

Java8新语法

一、Java8新特性 JDK 8 正式版在 2013 年 9 月份发布。 Java8主要内容Lambda表达式函数式接口方法引用与构造器引用Stream API接口中的默认方法与静态方法新时间日期API其他新特性Java8新特性简介: 速度更快代码更少(增加了新的Lambda表达式)强大的Stream API便于并行最大化减少…

构建未来对话:从零开始实现基于Vue 3的AI聊天页面

大家好&#xff0c;今天我们将一起探索如何从零开始&#xff0c;使用Vue 3构建一个AI对话页面。这个过程不仅会让我们了解Vue 3的新特性&#xff0c;还会让我们对构建交互式Web应用有一个全新的认识。如果你是编程新手&#xff0c;别担心&#xff0c;我会用通俗易懂的语言&…

HarmonyOS(43) @BuilderParam标签使用指南

BuilderParam BuilderParam使用举例定义模板定义具体实现BuilderParam初始化 demo源码参考资料 BuilderParam 该标签有的作用有点类似于设计模式中的模板模式&#xff0c;类似于指定一个UI占位符&#xff0c;具体的实现交给具体的Builder&#xff0c;顾名思义&#xff0c;可以…

SpringBoot项目架构实战之“网关zuul搭建“

第三章 网关zuul搭建 前言&#xff1a; 1、主要功能 zuul主要提供动态路由&#xff08;内置ribbon实现&#xff09;和过滤&#xff08;可以做统一鉴权过滤器、灰度发布过滤器、黑白名单IP过滤器、服务限流过滤器&#xff08;可以配合Sentinel实现&#xff09;&#xff09;功能…

学会创建虚拟网卡

此电脑-----管理 一直点击下一页 选择网络适配器 选择Microsoft----Microsoft KM-TEST环回适配器 然后点击下一页 完成的界面如下&#xff1a; 手动改IP