当前位置: 首页 > news >正文

JavaScript 基础 API DOM(一)

1.1 作用和分类

  • 作用: 就是使用 JS 去操作 html 和浏览器
  • 分类:DOM (文档对象模型)、BOM(浏览器对象模型)

1.2 什么是DOM

  • DOM( Document Object Model——文档对象模型)是用来呈现以及与任意 HTML 或 XML文档交互的APIl
  • 白话文:DOM是浏览器提供的一套专门用来 操作网页内容 的功能
  • DOM作用
  1.  开发网页内容特效和实现用户交互

 DOM对象(重要)

DOM对象:浏览器根据html标签生成的 JS对象

  •  所有的标签属性都可以在这个对象上面找到
  •  修改这个对象的属性会自动映射到标签身上 

DOM的核心思想 

  •  把网页内容当做对象来处理

document 对象

  • 是 DOM 里提供的一个对象
  • 所以它提供的属性和方法都是用来访问和操作网页内容的
  1.      例:document.write()
  • 网页所有内容都在document里面

获取DOM对象 

document

document 是 JavaScript 内置的专门用于 DOM 的对象,该对象包含了若干的属性和方法,

 2.1 根据CSS选择器来获取DOM元素

  1. querySelector 满足条件的第一个元素
  2. querySelectorAll 满足条件的元素集合 返回伪数组
  3. 了解其他方式

 操作元素内容

  1. innerText 将文本内容添加/更新到任意标签位置,文本中包含的标签不会被解析。
  2. innerHTML 将文本内容添加/更新到任意标签位置,文本中包含的标签会被解析。

常用属性修改

  1. 直接能过属性名修改,最简洁的语法

控制样式属性

  1. 应用【修改样式】,通过修改行内样式 style 属性,实现对样式的动态修改。

通过元素节点获得的 style 属性本身的数据类型也是对象,如 box.style.colorbox.style.width 分别用来获取元素节点 CSS 样式的 color 和 width 的值。

    2 .操作类名(className) 操作CSS

如果修改的样式比较多,直接通过style属性修改比较繁琐,我们可以通过借助于css类名的形式

操作表单元素属性

获取:DOM对象.属性名

设置:DOM对象.属性名= 新值

自定义属性

标准属性: 标签天生自带的属性 比如class id title等, 可以直接使用点语法操作比如: disabled、checked、selected

自定义属性:

在html5中推出来了专门的data-自定义属性

在标签上一律以data-开头

在DOM对象上一律以dataset对象方式获取

间歇函数

setInterval 是 JavaScript 中内置的函数,它的作用是间隔固定的时间自动重复执行另一个函数,也叫定时器函数

// 开启定时器

let 变量名 = setInterval(函数, 时间)

 // 停止定时器

clearInterval(变量名)

事件

事件是编程语言中的术语,它是用来描述程序的行为或状态的,一旦行为或状态发生改变,便立即调用一个函数

事件监听

结合 DOM 使用事件时,需要为 DOM 对象添加事件监听,等待事件发生(触发)时,便立即调用一个函数。

addEventListener 是 DOM 对象专门用来添加事件监听的方法,它的两个参数分别为【事件类型】和【事件回调】

步骤:

  1. 获取 DOM 元素
  2. 通过 addEventListener 方法为 DOM 节点添加事件监听
  3. 等待事件触发,如用户点击了某个按钮时便会触发 click 事件类型
  4. 事件触发后,相对应的回调函数会被执行

事件类型

click 译成中文是【点击】的意思,它的含义是监听(等着)用户鼠标的单击操作,除了【单击】还有【双击】dblclick

事件处理程序

addEventListener 的第2个参数是函数,这个函数会在事件被触发时立即被调用,在这个函数中可以编写任意逻辑的代码,如改变 DOM 文本颜色、文本内容等。

鼠标事件 

  1. `mouseenter 监听鼠标是否移入 DOM 元素
  2. `mouseleave 监听鼠标是否移出 DOM 元素
<script>const div = document.querySelector('div')// 鼠标经过div.addEventListener('mouseenter', function () {console.log(`轻轻的我来了`)})// 鼠标离开div.addEventListener('mouseleave', function () {console.log(`轻轻的我走了`)})</script>

键盘事件

keydown 键盘按下触发 keyup 键盘抬起触发

<script>const input = document.querySelector('input')// 1. 键盘事件// input.addEventListener('keydown', function () {//   console.log('键盘按下了')// })// input.addEventListener('keyup', function () {//   console.log('键盘谈起了')// })// 2. 用户输入文本事件  inputinput.addEventListener('input', function () {console.log(input.value)})</script>

焦点事件

focus 获得焦点

blur 失去焦点

const input = document.querySelector('input')input.addEventListener('focus', function () {console.log('有焦点触发')})input.addEventListener('blur', function () {console.log('失去焦点触发')})

文本框输入事件

input

<script>// const btn = document.querySelector('button')// btn.addEventListener('click', function (e) {//   console.log(e)// })const input = document.querySelector('input')input.addEventListener('keyup', function (e) {// console.log(11)// console.log(e.key)if (e.key === 'Enter') {console.log('我按下了回车键')}})</script>
script>const str = '          im a teacher  '// console.log(str.trim())  // 去除字符串左右的空格const tx = document.querySelector('textarea')tx.addEventListener('keyup', function (e) {// console.log(tx.value)if (e.key === 'Enter') {// console.log(tx.value)console.log(tx.value.trim() === '')}})</script>

事件对象

任意事件类型被触发时与事件相关的信息会被以对象的形式记录下来,我们称这个对象为事件对象。

事件回调函数的【第1个参数】即所谓的事件对象,通常习惯性的将这个对数命名为 eventev 、e 。

接下来简单看一下事件对象中包含了哪些有用的信息:

  1. ev.type 当前事件的类型
  2. ev.clientX/Y 光标相对浏览器窗口的位置
  3. ev.offsetX/Y 光标相于当前 DOM 元素的位置

注:在事件回调函数内部通过 window.event 同样可以获取事件对象。

环境对象

环境对象指的是函数内部特殊的变量 this ,它代表着当前函数运行时所处的环境。

结论:

  1. this 本质上是一个变量,数据类型为对象
  2. 函数的调用方式不同 this 变量的值也不同
  3. 【谁调用 this 就是谁】是判断 this 值的粗略规则
  4. 函数直接调用时实际上 window.sayHi() 所以 this 的值为 window

回调函数

如果将函数 A 做为参数传递给函数 B 时,我们称函数 A 为回调函数。

结论:

  1. 回调函数本质还是函数,只不过把它当成参数使用
  2. 使用匿名函数做为回调函数比较常见

相关文章:

JavaScript 基础 API DOM(一)

1.1 作用和分类 作用: 就是使用 JS 去操作 html 和浏览器 分类&#xff1a;DOM (文档对象模型)、BOM&#xff08;浏览器对象模型&#xff09; 1.2 什么是DOM DOM&#xff08; Document Object Model——文档对象模型&#xff09;是用来呈现以及与任意 HTML 或 XML文档交互的…...

Java基础知识:1,DOS命令

1&#xff0c;盘名称 加 : 进入该盘目录下 例如&#xff1a;e: 进入e盘 2&#xff0c;dir 查看当前路径下文件和文件夹 3&#xff0c;md 文件夹名字 》 创建文件夹&#xff08;md后要加空格&#xff09; &#xff08;md make directory&#xff09; 4&#xff0c;c…...

NEFU ERP 企业资源计划[1] 详细知识点

NEFU ERP 企业资源计划[1] 详细知识点 ERP 企业资源管理计划第 0 章 术语第 1 章 ERP 概述1、什么是 ERP2、ERP 目的3、ERP 应用 第 2 章 ERP 理论与发展1、ERP 发展概述订货点法物料需求计划 MRP&#xff08;时段 MRP、基本 MRP)闭环 MRPMRP II&#xff08;制造资源计划&#…...

Science文章复现(Python):图1 - Aircraft obs(机载的观测 CO2)

之前有写过science文章后处理的复现Science文章复现&#xff08;Python&#xff09;&#xff1a;在机载观测中明显的强烈南大洋碳吸收 在这里是针对图细节的理解&#xff1a; 首先需要下载这个项目 https://github.com/NCAR/so-co2-airborne-obs 这里的环境配置会比较麻烦 con…...

安全基础第十一天:nginx

目 录 一、nginx的反向代理 1.反向代理原理 2.反向代理的几种算法 &#xff08;1&#xff09;轮询&#xff08;默认&#xff09; &#xff08;2&#xff09;weight &#xff08;3&#xff09;ip_hash &#xff08;4&#xff09;fair&#xff08;第三方&#xff09; …...

设计模式之【命令模式】,方法调用的花式玩法

文章目录 一、什么是命令模式1、命令模式使用场景2、命令模式的主要角色3、命令模式优缺点4、命令模式注意事项及细节 二、使用示例1、命令模式的一般写法2、播放器功能案例3、遥控器案例 三、源码中的命令模式1、Thread 一、什么是命令模式 命令模式&#xff08;Command Patt…...

企业需要专业电子邮件地址的4大原因

专业的企业电子邮件地址具有贵公司的自定义域名&#xff0c;而不是通用的Zoho Mail 、gmail或yahoo帐户&#xff0c;例如&#xff1a;john stargardening.com 大多数初学者使用不带域名的通用免费企业电子邮件帐户&#xff0c;这不是很专业。例如&#xff1a;zhangsan2022zoho.…...

国民游戏王者荣耀的真实地图开发之路

&#x1f449;腾小云导读 相信很多人都玩过王者荣耀&#xff0c;大家在欣赏其华丽的游戏界面以及炫酷的游戏技能时&#xff0c;是否好奇过王者荣耀的地图是怎样开发出来的&#xff1f;在开发的历程中&#xff0c;都有哪些问题&#xff1f;是怎样解决的&#xff1f;本文将从其地…...

浅谈IDC数据中心综合布线第二篇——结构化布线

数据中心网络在当今的业务中扮演着越来越重要的作用&#xff0c;提供数据的存储、管理、共享、交换、应用等功能。在数据中心中&#xff0c;大量的数据在服务器、交换机、存储设备之间通过物理层的光缆&#xff08;仅讨论光纤布线&#xff09;进行传输。数据表明&#xff0c;在…...

电脑格式化后数据恢复软件EasyRecovery16

EasyRecovery是一款由Kroll Ontrack公司开发的专业数据恢复软件&#xff0c;旨在帮助用户从各种数据丢失情况下恢复文件。无论是因为误删除、格式化、分区丢失、系统崩溃还是其他原因导致的数据丢失&#xff0c;EasyRecovery都具有强大的恢复功能。 EasyRecovery提供了多种恢复…...

(2020)End-to-end Neural Coreference Resolution论文笔记

2020End-to-end Neural Coreference Resolution论文笔记 Abstract1 Introduction2 Related Work3 Task4 Model4.1 Scoring Architecture4.2 Span Representations5 Inference6 Learning7 Experiments7.1 HyperparametersWord representationsHidden dimensionsFeature encoding…...

kafka命令

查询kafka版本信息 kafka-configs.sh --describe --bootstrap-server localhost:9092 --version 查看所有topic [rootm10 bin]# kafka-topics.sh --list --zookeeper localhost:2181 __consumer_offsets kahn-topic-1 my_topic x_topic-1 创建一个topic&#xff0c;名为x_top…...

mybatis多表查询

多表查询有哪些情况 Mybatis 支持多表查询&#xff0c;常见的多表查询方式包括使用嵌套查询和关联查询 嵌套查询 嵌套查询是指在 SQL 语句中嵌套另外一个查询语句&#xff0c;可以用于在一个表中查询与另一表相关的数据。例如&#xff0c;在一个订单表中同时需要查询该订单所属…...

kafka 从入门到精通

kafka 安装 zookeeper模式 创建软件目录 mkdir /opt/soft cd /opt/soft下载 wget https://downloads.apache.org/kafka/3.4.0/kafka_2.13-3.4.0.tgz解压 tar -zxvf kafka_2.13-3.4.0.tgz 修改目录名称 mv kafka_2.13-3.4.0 kafka配置环境变量 vim /etc/profileexport K…...

写PPT没有思路, 这些底层方法论让你灵感爆棚……

作为一个10年经验的策划人&#xff0c;以下是个人多年经验&#xff0c;看完绝对对你写PPT会有很大帮助&#xff01; 首先&#xff0c;有很多新手写PPT有一个不好的习惯&#xff0c;就是喜欢直接上手就打开PPT开始啪啪啪打字。 这是非常错误的&#xff0c;这就等于你是想到哪写…...

【小沐学Python】Python实现Web服务器(Flask+Vue+node.js,web单页增删改查)

文章目录 1、简介1.1 flask1.2 vue 2、开发2.1 新建flask项目2.2 安装flask库2.3 新建flask的主脚本2.4 新建Vue项目2.5 安装vue项目依赖项2.6 新增组件Ping.vue2.7 Ping.vue增加HTTP请求2.8 美化vue前端页面2.9 新增组件Books.vue2.10 flask增加路由Books2.11 Books.vue增加HT…...

甘肃非煤矿山电子封条 智慧矿山 opencv

甘肃非煤矿山电子封条 智慧煤矿接入国家矿山安全平台是通过pythonopencv网络模型&#xff0c;甘肃非煤矿山电子封条pythonopencv网络模型对关键位置&#xff08;回风井口、运人井口、车辆出入口&#xff09;对现场人员行为、数量、穿戴着装及设备状态各数据进行实时监控分析。p…...

工业识别与定位系统源码解决方案

工厂人员定位系统源码&#xff0c;工业领域定位系统源码 近年来人员定位系统在工业领域的发展势头迅猛&#xff0c;工业识别与定位成为促进制造业数字化的关键技术。通过实时定位可以判断所有的人、物、车的位置。实时定位系统要适用于复杂工业环境&#xff0c;单一技术是很难…...

PCL学习之滤波算法

前言 点云滤波作为常见的点云处理算法&#xff0c;一般是点云处理的第一步&#xff0c;对后续处理有很重要作用。滤波 有很多方面也有很多种功能&#xff0c;比如去除噪声点、离群点、点云平滑以及空洞、数据压缩等 原始点云数据往往包含大量散列点、孤立点&#xff0c;在获取…...

第二章 链表

目录 一、移除链表元素二、设计链表三、反转链表四、两两交换链表中的节点五、删除链表倒数第N个节点六、链表相交七、环形链表Ⅱ 一、移除链表元素 Leetcode 203 class Solution { public:ListNode* removeElements(ListNode* head, int val) {ListNode* dummyHead new Lis…...

2026最新!会议纪要怎么记录才能不加班?这3款亲测神器,10分钟搞定好用到哭!

做会议纪要这件事&#xff0c;开发要整理需求评审&#xff0c;产品要记跨部门对齐&#xff0c;运营要盘活动复盘&#xff0c;学生要记课堂讲座&#xff0c;不同人需求天差地别&#xff1a;有人要准&#xff0c;有人要快&#xff0c;有人要长期用得起。我前后测了不下十款2026年…...

HunterPie终极指南:如何通过现代叠加层提升《怪物猎人世界》游戏体验

HunterPie终极指南&#xff1a;如何通过现代叠加层提升《怪物猎人世界》游戏体验 【免费下载链接】HunterPie-legacy A complete, modern and clean overlay with Discord Rich Presence integration for Monster Hunter: World. 项目地址: https://gitcode.com/gh_mirrors/h…...

Lingyuxiu MXJ LoRA进阶教程:负面Prompt强化NSFW过滤与画质提升方法

Lingyuxiu MXJ LoRA进阶教程&#xff1a;负面Prompt强化NSFW过滤与画质提升方法 1. 引言&#xff1a;从“能用”到“好用”的关键一步 如果你已经成功部署了Lingyuxiu MXJ LoRA创作引擎&#xff0c;并且用它生成了一些人像作品&#xff0c;那么恭喜你&#xff0c;你已经迈出了…...

Langchain4j(3) Prompt 提示词工程 + PromptTemplate + SystemMessage 高级用法

一、LangChain4j 提示词&#xff08;Prompt&#xff09;核心三件套 PromptTemplate&#xff1a;提示词模板&#xff0c;支持变量替换 SystemMessage&#xff1a;系统角色设定&#xff08;决定 AI 行为&#xff09; UserMessage / AiMessage&#xff1a;对话消息载体 二、基础&a…...

协议兼容性崩塌、语义理解断层、边缘响应延迟——AIAgent家居控制3大致命瓶颈,今天必须解决!

第一章&#xff1a;协议兼容性崩塌、语义理解断层、边缘响应延迟——AIAgent家居控制3大致命瓶颈&#xff0c;今天必须解决&#xff01; 2026奇点智能技术大会(https://ml-summit.org) 当用户对AI家居代理说“把客厅调成适合看书的暖光”&#xff0c;系统却关闭了空调、调亮了…...

BioBERT终极指南:生物医学文本挖掘的完整解决方案

BioBERT终极指南&#xff1a;生物医学文本挖掘的完整解决方案 【免费下载链接】biobert Bioinformatics2020: BioBERT: a pre-trained biomedical language representation model for biomedical text mining 项目地址: https://gitcode.com/gh_mirrors/bi/biobert BioB…...

无显卡环境如何部署TTS?CosyVoice-300M Lite实战解决方案

无显卡环境如何部署TTS&#xff1f;CosyVoice-300M Lite实战解决方案 1. 项目介绍 CosyVoice-300M Lite是一个专为无显卡环境设计的轻量级语音合成服务。这个项目基于阿里通义实验室的CosyVoice-300M-SFT模型&#xff0c;经过深度优化后可以在纯CPU环境下稳定运行&#xff0c…...

乙巳马年春联生成终端参数详解:PALM模型temperature与top_k设置

乙巳马年春联生成终端参数详解&#xff1a;PALM模型temperature与top_k设置 1. 引言&#xff1a;从“开门见喜”到“妙笔生花” 想象一下这个场景&#xff1a;你站在一扇威严的朱红大门前&#xff0c;门上整齐排列着金色的门钉&#xff0c;两位古老的门神在两侧守护。你只需在…...

亚洲美女-造相Z-Turbo部署案例:高校AI实验室私有化部署,支撑30+学生并发使用

亚洲美女-造相Z-Turbo部署案例&#xff1a;高校AI实验室私有化部署&#xff0c;支撑30学生并发使用 最近和一所高校AI实验室的老师聊天&#xff0c;他们遇到了一个挺有意思的难题。实验室有30多个学生&#xff0c;课程项目需要用到文生图模型来生成特定风格的图片&#xff0c;…...

避开开关电源的坑:AP值计算中3个易错点实测复盘

避开开关电源的坑&#xff1a;AP值计算中3个易错点实测复盘 在开关电源设计中&#xff0c;AP值&#xff08;Area Product&#xff09;作为磁芯选择的核心参数&#xff0c;直接关系到变压器的功率处理能力和整体效率。然而&#xff0c;即使经验丰富的工程师&#xff0c;在实际项…...