JavaScript——WebAPI(DOM)知识小结

news2024/11/17 17:50:29

目录

什么是WebAPI

DOM API

DMO树

DOM树:

 选中页面元素:  

事件 

事件的三要素:

获取/修改元素内容

 获取/修改元素属性

获取/修改表单元素属性 

获取/修改样式属性 

新增元素

删除元素 


什么是WebAPI

WebAPI是浏览器给js提供的功能,同时如果浏览器不同,api的行为也会有所不同。

WebAPI可以分为DOM API(操作页面结构)和BOM API(操作浏览器)

DOM API

DOM是文档对象模型:

把HTML的每个标签与JS关联起来,标签显示的是什么都可以通过JS对象感知到,通过JS对象修改属性可以直接影响标签的展示。

DMO树

一个页面的结构是一个树形结构, 称为 DOM 树

DOM树:

 

 

 选中页面元素:  

querySelector() 

我们需要知道:所有的dom api都是通过document对象来展开的。 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>dom api</title>
</head>
<body>
    <div class="box">abc</div>
    <div id="id">def</div>
    <h3>
        <span>
            <input type="text">
        </span>
    </h3>
    <script>
        let elem1=document.querySelector('.box');
        console.log(elem1);
        console.dir(elem1);
        let elem2=document.querySelector('#id');
        console.log(elem2);
        let elem3=document.querySelector('h3>span>input');
        console.log(elem3);
    </script>
</body>
</html>

当使用queryselector()选中元素的时候,如果需要选中多个元素,可以使用queryselectorAll()。

使用queryselectorAll()打印出来的结果是数组的形式:

 点开就是详细的属性等等信息。 

事件 

 首先我们要知道什么是事件:

简单来说,事件就是指的针对用户的操作进行的一些响应,比如鼠标点击,鼠标双击,浏览器窗口的调整等等动作,代码需要针对事件作出相应的反应。

事件的三要素:

1、事件源:哪个元素产生的事件

2、事件类型:点击,双击,移动,键盘按下......

3、事件处理程序 :事件发生之后,要执行哪个代码(提前设定好)

举个简单的例子:你一回到家,看见女朋友面色不善。你就猜想是不是女朋友遇到了每个月都不开心的那几天于是果断去冲一杯红糖水

在这个例子中:

事件源:女朋友

事件类型:面色不善

事件处理程序:冲红糖水。

这就是事件。

前端页面中,针对不同的事件要有不同的处理方式(最开始设定好(事件绑定)) 

 

这个匿名函数相当于一个回调函数,这个函数不用我们手动调用,是由浏览器在合适的时候进行自动调用的。

获取/修改元素内容

先获取到该元素,使用innerHTML属性就可以获取到元素内的内容,修改该属性就会影响到页面的显示。

 

 点一次abc后面就加一个b并且修改并打印出来 。

 获取/修改元素属性

获取元素的属性可以直接通过代码获取,也可以直接修改属性。

比如一个图片,我们可以通过点击,将其转换为另一个图片(这个是用到了修改src属性)

 

 

获取/修改表单元素属性 

表单(主要是指 input 标签)的以下属性都可以通过 DOM 来修改

value: input 的值.
disabled: 禁用
checked: 复选框会使用
selected: 下拉框会使用
type: input 的类型(文本, 密码, 按钮, 文件等)
单标签是没有内容的,比如input是个单标签,是没有内容的,innerHTML是获得的标签中的内容。

  

我们写一个简单例子:

给input中放个数字,每点击一下这个数字的值就+1。

 

这里我们需要注意,点击一次会在后面直接加上一个1,这是因为value是一个string类型的,所以我们需要用parseInt()来进行转换为int类型。

  

这样就解决了。 

一个例子:密码显示切换

同时我们可以修改type属性来解决密码显示切换的问题。

获取/修改样式属性 

1、修改内联样式(修改style属性的值)

 

 

如果我们想要实现一个点击会让字体放大,就需要修改style的值。(修改的时候需要注意,字体大小20px也是string,所以需要转换为整数,进行放大)

 

 

每次点击增大10px。 

2、修改元素应用的css类名 

 这个我们写一个切换夜间模式的例子

日间模式:

 夜间模式:

以上我们的操作都是针对当前页面上已经有的元素进行展开的,我们也可以自己进行创建元素和删除元素。

新增元素

新增元素分为两个步骤:

1、创建一个元素

2、把这个元素放到dom树

比如追加input元素: 

 

这是加一个元素的,我们也可以加多个元素,如在11,22后面加入33,44,55,66,77,88,99

 

删除元素 

使用 removeChild 删除子节点 

比如上面那个例子里面,我们要删除掉33这个元素 

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

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

相关文章

前后端 token 的使用

嗷呜, 预感又是一篇长的水文, 但是内心好激动哦 适用于前端(了解 node express 框架的人看), 想要了解后端的人看 好了, 开始废话模式 前后端 token 的使用 最近在做一个后台管理项目, 但是我一个卑微的前端我去哪里找接口的, 没有, 只好我自己写 哎, 我能有什么坏心思呢, 没有…

【React】使用Next.js构建并部署个人博客

&#x1f449; TypeScript学习&#xff1a;TypeScript从入门到精通 &#x1f449; 蓝桥杯真题解析&#xff1a;蓝桥杯Web国赛真题解析 &#x1f449; 个人简介&#xff1a;一个又菜又爱玩的前端小白&#x1f36c; &#x1f449; 你的一键三连是我更新的最大动力❤️&#xff01…

Server Tomcat v9.0 Server at localhost failed to start问题

Server Tomcat v9.0 Server at localhost failed to start问题解决办法。 在我们使用eclipse启动Tomcat时&#xff0c;有时会出现Server Tomcat v9.0 Server at localhost failed to start 的错误提示&#xff0c;导致无法成功启动&#xff0c;下面给出出现这种问题的简单解决…

Python开发自定义Web框架

文章目录开发自定义Web框架1.开发Web服务器主体程序2.开发Web框架主体程序3.使用模板来展示响应内容4.开发框架的路由列表功能5.采用装饰器的方式添加路由6.电影列表页面的开发案例开发自定义Web框架 接收web服务器的动态资源请求&#xff0c;给web服务器提供处理动态资源请求…

Web项目(Vue)部署到阿里云服务器【超详细】

超详细Vue项目部署篇&#xff01;&#xff01;&#xff01; 小白的部署之路 前段时间白嫖了一年的阿里云服务器&#xff0c;想着手上有个项目&#xff0c;那就部署上去吧。找了很多教程&#xff0c;没有一篇是完整细致的&#xff0c;对于小白的我来说太难了&#xff0c;然后就…

最全面的SpringBoot教程(三)——SpringBoot Web开发

前言 本文为SpringBoot Web开发相关内容介绍&#xff0c;下边将对静态资源管理&#xff08;包括&#xff1a;静态资源访问&#xff0c;静态资源前缀&#xff0c;webjar&#xff0c;首页支持&#xff09;&#xff0c;请求参数处理&#xff08;包括&#xff1a;Rest风格&#xff…

【微信小程序】-- 自定义组件 - 父子组件之间的通信(三十八)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…

也许是全网最全的 Angular 新手入门指南

文章目录Angular概述Angular程序架构Angular优势angular/cli脚手架文件加载顺序项目目录结构Angular模块NgModule 装饰器内置模块自定义模块模块的tipsAngular组件Component 元数据数据绑定脏值检测父子组件通讯投影组件Angular指令内置属性型指令内置结构型指令指令事件样式绑…

若依框架(前后端分离)打war包部署到linux

一、前端部署 1.找到ruoyi-ui目录。 2.安装依赖。 npm install 3.执行以下操作&#xff0c;解决 npm 下载速度慢的问题。 npm install --registryhttps://registry.npmmirror.com 4.修改vue.config.js,若后端采用的是默认8080端口&#xff0c;则不用修改&#xff0c;默认就是…

2023最新最全vscode插件精选

文章简介 本文介绍最新、最实用、最强大的 vscode 精选扩展。好用的扩展&#xff0c;犹如神兵利器&#xff0c;帮助程序员在代码的世界中&#xff0c;所向披靡&#xff0c;战无不胜&#xff01; 作者介绍 随易出品&#xff0c;必属精品&#xff0c;只写有深度&#xff0c;有质…

vue 路由钩子

路由钩子分为三种 全局钩子&#xff1a; beforeEach、 afterEach、beforeResolve单个路由里面的钩子&#xff1a; beforeEnter组件路由&#xff1a;beforeRouteEnter、 beforeRouteUpdate、 beforeRouteLeave 它的三个参数&#xff1a; to: (Route路由对象) 即将要进入的目标…

【前端知识体系梳理(三)】Diff策略

​ 目录 &#x1f349;前言 &#x1f349;传统Diff算法 &#x1f349;React Diff &#x1f353;&#x1f353;&#x1f353;1、tree diff &#x1f353;&#x1f353;&#x1f353;2、component diff &#x1f353;&#x1f353;&#x1f353;3、element diff &#x1…

前端页面项目——博客系统

目录 1.实现博客列表页 1.1 实现导航栏 1.2 实现中间版心 1.3 实现个人信息 1.4 实现博客列表 2. 实现博客正文页 3. 实现博客登陆页 4. 实现博客编辑 4.1 实现编辑区 4.2 引入编辑器 展示 1&#xff09;登录页面 2&#xff09;博客列表页 3&#xff09;博客详情页 4&am…

【JavaScript】手撕前端面试题:手写Object.create | 手写Function.call | 手写Function.bind

&#x1f5a5;️ NodeJS专栏&#xff1a;Node.js从入门到精通 &#x1f5a5;️ 博主的前端之路&#xff08;源创征文一等奖作品&#xff09;&#xff1a;前端之行&#xff0c;任重道远&#xff08;来自大三学长的万字自述&#xff09; &#x1f5a5;️ TypeScript知识总结&…

PyQt5之进度条:QProgressBar

PyQt5之进度条&#xff1a;QProgressBar 在软件中&#xff0c;在处理特别冗长的任务时&#xff0c;如果没有相关的进度信息&#xff0c;这个等待的过程会比较考验用户的耐心&#xff0c;根据相关理论&#xff0c;进度条可以缓解用户在等待过程中的焦虑&#xff0c;所以&#x…

前端学习笔记(14)-Vue3组件传参

1.props&#xff08;父组件传递给子组件&#xff09;1.1 实现如果你没有使用 <script setup>&#xff0c;props 必须以 props 选项的方式声明&#xff0c;props 对象会作为 setup() 函数的第一个参数被传入&#xff1a;在子组件中&#xff1a;export default {props: {ti…

微信小程序头像昵称填写能力

1、基本介绍 微信小程序获取头像昵称的能力&#xff0c;最近又进行了一次调整&#xff0c;如果没有记错这是今年第三次调整了&#xff0c;每次调整每个开发者心中我相信都跟我一样&#xff0c;万马奔腾。。。今天写个demo体验下实际效果如何。 详细信息请见小程序用户头像昵称…

微信小程序实现PDF预览功能——pdf.js(含源码解析)

文章目录前言一、pdf.js 是什么&#xff1f;二、使用步骤1.下载库文件2.使用方式微信小程序端——使用 web-view 标签H5 端——使用 iframe 标签&#xff08;使用vue框架&#xff09;3.更改源码如何隐藏顶部工具栏如何让用户强制阅读一定时间如何获取pdf总页数如何获取pdf当前页…

【折腾电脑】Edge浏览器看B站视频卡顿最全解决办法合集

开头碎碎念&#xff1a;更新频率明显和疫情呈正相关&#xff0c;祝大家健健康康吃好喝好&#xff01; 使用Microsoft Edge浏览器观看B站视频&#xff0c;卡得无法忍受。 在网络上搜索相关问题&#xff0c;最早的一条是2016/04/17微软问题反馈的记录。任何原因的卡顿都是正常的&…

Vue样式穿透

Vue样式穿透 vue文件的style标签的scoped属性作用&#xff1a;PostCSS在元素标签上添加特殊属性值&#xff0c;在样式的选择器后面添加属性选择器&#xff0c;实现了组件样式的私有化&#xff0c;防止组件之间的样式污染&#xff08;比如相同类名的元素&#xff09;。 但在使…