JS(WebAPI部分)

news/2024/5/3 23:12:03/文章来源:https://blog.csdn.net/weixin_51584115/article/details/126599331

文章目录

    • DOM
      • DOM 简介
      • 获取元素
      • 事件基础
        • 事件三要素
        • 执行事件的步骤
      • 操作元素
    • ROM

MDN文档链接: https://developer.mozilla.org/zh-CN/docs/Web/API
在这里插入图片描述

DOM

DOM 简介

文档对象模型(Document Object Model,简称 DOM),是 W3C 组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口。 W3C 已经定义了一系列的 DOM 接口,通过这些 DOM 接口可以改变网页的内容、结构和样式。
在这里插入图片描述

获取元素

因为文档页面从上往下加载,所以先要写标签,script要写到标签下面
根据 ID 获取
getElementById() 方法,返回带有 ID 的元素对象。
document.getElementById(‘id’);

console.dir() 可以打印我们获取的元素对象,更好的查看对象里面的属性和方法。

<body><div id="time">2022-8-30</div><script>// 因为文档页面从上往下加载,所以先要写标签,script要写到标签下面var timer=document.getElementById('time');console.log(timer);console.log(typeof timer);//返回的是一个对象console.dir(timer);</script>
</body>

在这里插入图片描述
根据标签名获取
使用 getElementsByTagName() 方法可以返回带有指定标签名的对象的集合。
document.getElementsByTagName(‘标签名’);
注意:

  1. 因为得到的是一个对象的集合,所以我们想要操作里面的元素就需要遍历。
  2. 得到元素对象是动态的
  3. 返回的是元素对象的伪数组,如果页面中没有该元素,返回的是空的伪数组。
<body><ul><li>这是一个标签1</li><li>这是一个标签2</li><li>这是一个标签3</li><li>这是一个标签4</li><li>这是一个标签5</li></ul><script>//返回的是元素对象的伪数组var lis=document.getElementsByTagName('li');console.log(lis);console.log(lis[0]);//遍历元素for(var i=0;i<lis.length;i++){console.log(lis[i]);}</script>
</body>

在这里插入图片描述
获取父元素内部的指定标签名的子元素
注意:父元素必须是一个指定的元素

<body><ul><li>这是一个标签1</li><li>这是一个标签2</li><li>这是一个标签3</li><li>这是一个标签4</li><li>这是一个标签5</li></ul><ol id="ol"><li>1234567</li><li>1234567</li><li>1234567</li></ol><script>var ol=document.getElementsByTagName('ol');console.log(ol[0].getElementsByTagName('li'));//必须指明哪一个元素var ol1=document.getElementById('ol');console.log(ol1.getElementsByTagName('li'));</script>
</body>
  • document.getElementsByClassName(‘类名’);根据类名返回元素对象集合
  • document.querySelector(‘选择器’); 根据指定选择器返回第一个元素对象
    根据类名class选择,加 “ . ” ,根据id选择,加 “ # ” ,根据标签选择,不用加
  • document.querySelectorAll(‘选择器’); 根据指定选择器返回所有对象
<body><div class="box">盒子</div><div class="box">盒子</div><div id="nav"><ul><li>产品</li><li>首页</li></ul></div><script>// getElementsByClassName(‘类名’) 根据类名返回元素对象集合var boxes=document.getElementsByClassName('box');console.log(boxes);// document.querySelector('选择器')  根据指定选择器返回第一个元素对象var firstBox=document.querySelector('.box');//根据class选择console.log(firstBox);var nav=document.querySelector('#nav');//根据id选择console.log(nav);var li=document.querySelector('li');//根据标签选择console.log(li);// document.querySelectorAll('选择器')  根据指定选择器返回var allBox=document.querySelectorAll('.box');console.log(allBox);</script>
</body>

在这里插入图片描述
在这里插入图片描述

<!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>Document</title>
</head>
<body><script>// 获取body元素var bodyEle=document.body;console.log(bodyEle);console.dir(bodyEle);// 获取html元素var htmlEle=document.documentElement;console.log(htmlEle);</script>
</body>
</html>

在这里插入图片描述

事件基础

在这里插入图片描述

事件三要素

  1. 事件源 (谁)
  2. 事件类型 (什么事件)
  3. 事件处理程序 (做啥)

示例:

<body><!-- 点击一个按钮,弹出对话框 --><button id="btn">唐伯虎</button><script>var btn=document.getElementById('btn');//获取事件源// 事件类型,如何触发事件      // 事件处理程序 通过一个函数赋值的方式完成btn.onclick=function(){alert('点秋香');}</script>
</body>

执行事件的步骤

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

示例:

<body><div>123</div><script>var div=document.querySelector('div');//获取事件源//注册事件,添加事件处理程序div.onclick=function(){console.log('我被选中了');}</script>
</body>

在这里插入图片描述

操作元素

在这里插入图片描述

<!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>Document</title><style>div,p {width: 300px;height: 30px;line-height: 30px;color: #fff;background-color: blue;}</style>
</head><body><button>显示当前系统时间</button><div>某个时间</div><p>1123</p><script>var btn=document.querySelector('button');var div=document.querySelector('div');btn.onclick=function(){div.innerText= getDate();}function getDate() {var date=new Date();var year=date.getFullYear();var month=date.getMonth();var dates=date.getDate();var day=date.getDay();var arr=['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];return '今天是:'+year+'年'+month+'月'+dates+'日,本周'+arr[day];}var p=document.querySelector('p');p.innerText=getDate();//可以不用添加事件</script>
</body>
</html>

在这里插入图片描述
innerText 和 innerHTML 的区别

  1. innerText不识别 html标签;innerHTML 可以识别
<body><div></div><script>var div=document.querySelector('div');div.innerText='<strong>今天是:</strong>2019';div.innerHTML='<strong>今天是:</strong>2019';</script>
</body>

在这里插入图片描述
在这里插入图片描述
2. 两个属性都可以可以获取元素里的内容,innerText 会去除换行和空格;innerHTML 保留空格和换行。

<body><div></div><p>我是文字<span>123</span></p><script>// 可以获取元素里的内容var p=document.querySelector('p');console.log(p.innerText);console.log(p.innerHTML);</script>
</body>

在这里插入图片描述
在这里插入图片描述
格式:元素.属性=赋值;
案例:点击切换图片

<body><button id="ldh">刘德华</button><button id="zxy">张学友</button> <br><img src="images/ldh.jpg" alt="" title="刘德华"><script>// 修改元素属性 srcvar ldh=document.getElementById('ldh');var zxy=document.getElementById('zxy');var img=document.querySelector('img');zxy.onclick=function(){img.src='images/zxy.jpg';img.title='张学友';}ldh.onclick=function(){img.src="images/ldh.jpg";img.title='刘德华';}</script>
</body>

在这里插入图片描述

<body><button>按钮</button><input type="text" value="输入内容"><script>var btn=document.querySelector('button');var input=document.querySelector('input');btn.onclick=function(){input.value='被点击了';// btn.disabled=true;  也可写作:this.disabled=true;// this指向的是时间函数的调用者(按钮)}</script>
</body>

在这里插入图片描述

ROM

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

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

相关文章

CogView中网络结构的总体构建

入门小菜鸟&#xff0c;希望像做笔记记录自己学的东西&#xff0c;也希望能帮助到同样入门的人&#xff0c;更希望大佬们帮忙纠错啦~侵权立删。 目录 一、构建图 二、代码解析 1、__init__ &#xff08;1&#xff09;参数设定 &#xff08;2&#xff09;Word embeddings …

UVA 10271 佳佳的筷子 Chopsticks [DP的基本运用]

佳佳的筷子 Chopsticks 题面翻译 定义一个三元组(a,b,c)(a⩽b⩽c)(a,b,c)(a\leqslant b\leqslant c)(a,b,c)(a⩽b⩽c)&#xff0c;它的权值为 (a−b)2(a-b)^2(a−b)2 。 给定 n(n⩽5000)n(n\leqslant5000)n(n⩽5000) 个数&#xff0c;要求选出 k8k8k8 个三元组&#xff0c;使…

2、操作系统基本原理

操作系统基本原理 软件设计师需要有扎实的理论知识&#xff0c;而操作系统作为计算机科学最为基本的理论基础和分支领域之一&#xff0c;是软件设计师必须重点掌握的知识。本章将介绍操作系统相关的考点&#xff0c;并辅以练习题&#xff0c;以便考生切实掌握相关内容。 根据考…

【python经验总结】我与bug的那些日子

【python经验总结】我与bug的那段岁月 &#x1f496;&#x1f496;&#x1f496;&#x1f495;&#x1f495;&#x1f495;欢迎来到本博客&#x1f495;&#x1f495;&#x1f495;&#x1f496;&#x1f496;&#x1f496; . &#x1f381;支持&#xff1a;如果觉得博主的文章…

猿创征文|【Typescript】搭建TS的编译环境

多一些不为什么的坚持&#x1f933; 贤蛋 &#x1f95a;大眼萌 &#xff0c;一名很普通但不想普通的程序媛&#x1f64a; &#x1f4dd;本文章收录于专栏&#xff1a;Typescript学习 搭建TS的编译环境&#x1f388; 认识Typescript&#x1f48a; Typescript 的编译环境&#x1…

110道Java初级面试题及答案(最新Java初级面试题大汇总)

史上最全Java初中级面试题&#xff0c;发现网上很多Java初级面试题都没有答案&#xff0c;所以花了很长时间搜集整理出来了这套Java面试题大全&#xff0c;希望对大家有帮助哈~ 本人发现网上虽然有不少Java相关的面试题&#xff0c;但第一未必全&#xff0c;第二未必有答案&am…

windows系统使用docker-compose

windows系统使用docker-compose 为什么使用docker-compose&#xff1f; 使用 Docker Compose 可以轻松、高效的管理容器&#xff0c;它是一个用于定义和运行多容器 Docker 的应用程序工具 1、新建docker-compose.yml文件 在windows系统找到docker的安装目录&#xff1a;C:P…

2022 IDC中国数字金融论坛 | 筑基金融信创 共话金融科技新愿景

2022年8月18日&#xff0c;第十届“IDC中国数字金融论坛”于北京举行。本届论坛以“开放融合、数字信任、智慧金融”为主题&#xff0c;基于IDC对全球金融科技发展及行业趋势的研究&#xff0c;发布对金融行业趋势的解读与对数字金融发展的洞见&#xff0c;为金融领域资深专家及…

怎么把PDF转换成CAD文件格式呢?

我们在工作中难免会遇到各种文件格式&#xff0c;而每种格式都有其独特的优点。比如PDF文件格式比其他文件格式更稳定&#xff0c;基本上所有系统都可以打开&#xff0c;内容不容易修改。而CAD文件格式&#xff0c;在工程建设中&#xff0c;尤其是设计阶段被广泛应用。那么当我…

27、CityNeRF

简介 主页&#xff1a;https://city-super.github.io/citynerf/ CityNeRF能够将城市尺度的3D场景打包到一个统一的模型中&#xff0c;它能够保存从卫星到地面不等尺度的高质量细节。顶部:使用边缘颜色蓝色(L1)、绿色(L2)和橙色(L3)来表示从最远到最近的三个等级&#xff0c;P…

L73.linux命令每日一练 -- 第十章 Linux网络管理命令 -- dig和host

10.19 dig&#xff1a;域名查询工具 10.19.1 命令详解 ​ 【命令星级】 ★★★★☆ ​ 【功能说明】 ​ dig命令是常用的域名查询工具&#xff0c;可以用于测试域名系统的工作是否正常。 ​ 【语法格式】 dig [option] dig [选项]​ **说明&#xff1a;**在dig命令及后面…

Debian/Ubuntu/Kali 如何安装 Spotify 音乐白嫖神器

How to install Spotify on Debian/Ubuntu/Kali Linux 可能有小伙伴不了解&#xff0c;什么是Spotify&#xff1f;博主照搬维基百科来做 简要介绍&#xff1a; Spotify&#xff08;/ˈspɒtɪfaɪ/&#xff09;&#xff0c;中文译作“声田”&#xff09;&#xff0c;是一家瑞典…

如何图片批量重命名编号不要汉字?

如何图片批量重命名编号不要汉字&#xff1f;如果你是一个摄影发烧友&#xff0c;或者你是一名从事摄影相关工作的朋友&#xff0c;那么肯定经常会将拍摄好的照片转移到电脑上&#xff0c;然后进行批量重命名。其实不管什么时候&#xff0c;我们经常会遇到图片批量重命名的操作…

group by后,使用nvl失效问题

原因 首先&#xff0c;这篇博客写出了这个问题出现的原因&#xff1a; 链接: nvl(sum(字段),0) 的时候&#xff0c;能展示数据0&#xff0c;但是group by 下某个伪列的时候&#xff0c;查不到数据&#xff08;转载&#xff09; 这里我也总结下原因&#xff1a;没有记录返回则…

使用Kibana进行数据可视化

使用 Kibana 进行数据可视化 使用 ELK 堆栈&#xff08;Elasticsearch、Logstash 和 Kibana&#xff09;和 Elastic Stack 的一部分 Kibana 可视化和分析数据。 课程英文名&#xff1a;Data Visualization with Kibana 此视频教程共21.0小时&#xff0c;中英双语字幕&#x…

[模拟][模电][面试][运放]仪表放大器

前言 昨天访问量还是29万1千多&#xff0c;今天就变成了28万3千&#xff0c;CSDN又在倒退了&#xff01;&#xff01;&#xff01; 目录前言框图\;\\\;\\\;框图 虚短&#xff1a;放大器的正负输入假设短路&#xff0c;两个端口电位相同虚断&#xff1a;放大器的正负输入假设断…

Linux命令记录大全

至于为什么写下该篇博客 身为以为软件工程师平时在工作中会经常的使用Linux系统&#xff0c;久而久之会发现该系统比我们平时用的Windows系统有着巨大的优势&#xff0c;不管是从安全层面和可扩展层面。而Linux的命令可以说是非常的多并难以全部记住&#xff0c;所以我写下该片…

Hive 多数组合并 CONCAT_WS

目录 多列的情况 先上结果 拆分concat_ws 可以拆分数组 然后在用split切分再变回数组 多行合并 多列的情况 先上结果 select split(concat_ws(,,array("AAA", "bbb"), array(CCC,"AAA", "bbb"), array("GGG","…

react native 使用阿里字体图标库

前言 本文基于 “react-native”: “0.69.5” 版本。 1.下载iconfont图标文件 将iconfont图标文件放置在src/assets/fonts react native 所需的字体图标文件仅需iconfont.ttf这一个文件即可其余文件只是用于打开demo_index.html&#xff0c;打包时可将其余文件删除 2.链接字…

Java配置41-搭建Kafka服务器

目录 1.服务器环境 2.安装kafka 1&#xff09;上传安装介质 2&#xff09;解压安装 3&#xff09;修改配置文件 4&#xff09;启动zookeeper 5&#xff09;启动kafka 6&#xff09;测试 ​​​​​ 1.服务器环境 系统版本&#xff1a;Red Hat Enterprise Linux Server…