【WEB APIs】BOM-操作浏览器

目录

1. Window对象

1.1 BOM

1.2 定时器-延时函数

1.3 JS执行机制

1.4 location对象

1.5 navigator对象(复制)

1.6 history对象

2. 本地存储(重点)

2.1 介绍

2.2 分类

localStorage

sessionStorage

存储复杂数据类型

3. 综合案例—学生就业统计表

3.1 渲染业务

map()

join()

3.2 新增业务

3.3 新增业务


 

1. Window对象

1.1 BOM

    console.log(document === window.document); //truefunction fn() {console.log(11);}window.fn()var num = 10 //const let挂在自己的作用域内console.log(window.num);

1.2 定时器-延时函数

    const img = document.querySelector('img')setTimeout(function () {img.style.display = 'none'}, 3000)

1.3 JS执行机制

1.4 location对象

  //5秒后跳转<a href="http://www.itcast.cn"><span>5</span>秒后跳转</a><script>const a = document.querySelector('a')let num = 5let timerId = setInterval(function () {num--a.innerHTML = `<span>${num}</span>秒后跳转`if (num === 0) {clearInterval(timerId)// 跳转location.href = 'http://www.itcast.cn'}}, 1000)</script>

1.5 navigator对象(复制)

立即执行函数

1.6 history对象

2. 本地存储(重点)

2.1 介绍

2.2 分类

localStorage

 键一定记得加引号,不加当变量名看

本地存储只能存字符串类型

    // localStorage.setItem('键', '值') 键一定记得加引号 不加当变量名看localStorage.setItem('uname', 'hahah') //存储方式console.log(localStorage.getItem('uname')); //获取方式localStorage.removeItem('uname') //删除localStorage.setItem('uname', 'llll') //有键是修改//本地存储只能存字符串类型localStorage.setItem('age', 18)console.log(localStorage.getItem('age')); //18以字符串形式存储

sessionStorage

存储复杂数据类型

    const obj = {uname: '小明',age: 19,gender: '男'}// 1.复杂数据类型存储必须转换成JSON字符串存储localStorage.setItem('obj', JSON.stringify(obj))//JSON对象	{"uname":"小明","age":19,"gender":"男"}	// 2.把JSON字符串转换成对象console.log(JSON.parse(localStorage.getItem('obj')));

3. 综合案例—学生就业统计表

3.1 渲染业务

map()

join()

3.2 新增业务

3.3 新增业务

  <script>// 参考数据const initData = [// {//   stuId: 1,//   uname: '迪丽热巴',//   age: 22,//   salary: '12000',//   gender: '女',//   city: '北京',//   time: '2099/9/9 08:08:08'// }]// localStorage.setItem('data', JSON.stringify(initData))// 1. 渲染业务// 1.1 先读取本地存储的数据const arr = JSON.parse(localStorage.getItem('data')) || []console.log(arr)// 1.2 利用map和join方法来渲染页面const tbody = document.querySelector('tbody')function render() {const trArr = arr.map(function (ele, index) {return `<tr><td>${ele.stuId}</td><td>${ele.uname}</td><td>${ele.age}</td><td>${ele.gender}</td><td>${ele.salary}</td><td>${ele.city}</td><td>${ele.time}</td><td><a href="javascript:" data-id="${index}"><i class="iconfont icon-shanchu"></i>删除</a></td></tr>`})console.log(trArr)// join把数组转换为字符串 追加给tbody tbody.innerHTML = trArr.join('')// 显示共计有几条数据document.querySelector('.title span').innerHTML = arr.length}render()// 2.新增业务const info = document.querySelector('.info')const uname = document.querySelector('.uname')const age = document.querySelector('.age')const salary = document.querySelector('.salary')const gender = document.querySelector('.gender')const city = document.querySelector('.city')info.addEventListener('submit', function (e) {e.preventDefault() // 阻止默认提交行为// 非空判断if (!uname.value || !age.value || !salary.value) {return alert('输入内容不能为空')}// 获取表单元素的值,并追加进数组中arr.push({stuId: arr.length ? +arr[arr.length - 1].stuId + 1 : 1, //确保id不重复 要考虑数组长度为0的情况uname: uname.value,age: age.value,salary: salary.value,gender: gender.value,city: city.value,time: new Date().toLocaleString()})render()this.reset() //重置表单// 把数组转为JSON字符串存入本地存储中localStorage.setItem('data', JSON.stringify(arr))})// 3.删除业务// 采用事件委托的形式,给tbody注册点击事件tbody.addEventListener('click', function (e) {if (e.target.tagName === 'A') {if (confirm('确认删除')) { //点击确定返回true,否则falsearr.splice(e.target.dataset.id, 1) //通过自定义属性知道要删除数组的第几条元素render()localStorage.setItem('data', JSON.stringify(arr)) //数组更改,本地存储也改,要保证本地存储存最新数据}}})</script>

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

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

相关文章

数据结构——树与二叉树

树与二叉树 1. 树的基本概念 1.1 树的定义 树(tree)是 n ( n ≥ 0 ) n(n\geq 0) n(n≥0)个结点的有限集T。当n为0时时空树&#xff0c;任意一棵非空树应该满足&#xff1a; 有且仅有一个特定的结点&#xff0c;称为树的根(root)当 n > 1 n>1 n>1时&#xff0c;其余…

K8S快速部署

前置虚拟机环境正式部署BUG解决 前置虚拟机环境 每个虚拟机配置一次就好 #关闭防火墙 systemctl stop firewalld systemctl disable firewalld #关闭 selinux sed -i s/enforcing/disabled/ /etc/selinux/config # 永久 setenforce 0 # 临时 #关闭 swap swapoff -a # 临时 vi…

Vue生命周期

一、Vue的生命周期及其阶段 Vue生命周期&#xff1a;一个Vue实例从 创建 到 销毁 的整个过程。也就是从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、卸载等一系列过程&#xff0c;我们称这是 Vue 的生命周期。 生命周期的四个阶段&#xff1a;① 创建 ② 挂…

Android中的Wifi框架系列

Android wifi框架图 Android WIFI系统引入了wpa_supplicant&#xff0c;它的整个WIFI系统以wpa_supplicant为核心来定义上层接口和下层驱动接口。 Android WIFI主要分为六大层&#xff0c;分别是WiFi Settings层&#xff0c;Wifi Framework层&#xff0c;Wifi JNI 层&#xff…

Vue项目搜索引擎优化(SEO)终极指南:从原理到实战

文章目录 1. SEO基础与Vue项目的挑战1.1 为什么Vue项目需要特殊SEO处理&#xff1f;1.2 搜索引擎爬虫工作原理 2. 服务端渲染&#xff08;SSR&#xff09;解决方案2.1 Nuxt.js框架实战原理代码实现流程图 2.2 自定义SSR实现 3. 静态站点生成&#xff08;SSG&#xff09;技术3.1…

嵌入式八股RTOS与Linux---前言篇

前言 Linux与RTOS是校招八股的时候很喜欢考察的知识,在这里并没有把两个操作系统完全的独立开去讲,放在一起对比或许可能加深印象。我们讲Linux的内核有五部分组成:进程调度、内存管理、文件系统、网络接口、进程间通信,所以我也将从这五方面出发 中断管理去对比和RTOS的不同。…

centos 8安装及相关操作

安装centos 8 在VMware workstation中安装 UEFI对比BIOS有更快的启动速度、支持更大容量硬盘及 GPT 分区、图形化操作界面更友好、安全性更高、对新操作系统支持更好、硬件兼容性不断增强以及扩展性更好等。 按回车确定 重置root管理员密码 这样进入到紧急救援模式 mount -o r…

2025最新版Windows通过GoLand远程连接Linux构建Go项目保姆级教学

以Ubuntu24.04和GoLand2024.1.6为例子&#xff0c;演示如何在Windows上通过GoLand远程连接Linux进行Go编程。 通过go version指令可以发现当前Ubuntu系统没有安装go。 go version 通过指令安装go&#xff0c;其他系统可以通过wget安装&#xff0c;要指定安装的具体go版本&…

多元时间序列预测的范式革命:从数据异质性到基准重构

本推文介绍了一篇来自中国科学院计算技术研究所等机构的论文《Exploring Progress in Multivariate Time Series Forecasting: Comprehensive Benchmarking and Heterogeneity Analysis》&#xff0c;发表在《IEEE Transactions on Intelligent Transportation Systems》。论文…

开源PACS(dcm4che-arc-light)部署教程,源码方式

目录 文件清单下载地址安装概述OpenLDAP、Apache Directory StudioWildflydcm4che 安装部署MySQL源码编译dcm4cheedcm4chee-arc-light OpenLDAP安装ApacheDirectoryStudio安装配置WildFly服务器 部署完成 文件清单 下载地址 Apache directory studio - linkOpenLDAP - linkdcm…

PySide(PyQt),使用types.MethodType动态定义事件

以PySide(PyQt)的图片项为例&#xff0c;比如一个视窗的场景底图是一个QGraphicsPixmapItem&#xff0c;需要修改它的鼠标滚轮事件&#xff0c;以实现鼠标滚轮缩放显示的功能。为了达到这个目的&#xff0c;可以重新定义一个QGraphicsPixmapItem类&#xff0c;并重写它的wheelE…

深度学习 Deep Learning 第1章 深度学习简介

第1章 深度学习简介 概述 本章介绍人工智能&#xff08;AI&#xff09;和深度学习领域&#xff0c;讨论其历史发展、关键概念和应用。解释深度学习如何从早期的AI和机器学习方法演变而来&#xff0c;以及如何有效解决之前方法无法应对的挑战。 关键概念 1. 人工智能的演变 …

简述下npm,cnpm,yarn和pnpm的区别,以及跟在后面的-g,--save, --save-dev代表着什么

文章目录 前言一、npm&#xff0c;cnpm&#xff0c;yarn和pnpm的基本介绍和特点1.npm (Node Package Manager)2. Yarn3. cnpm (China npm)4. pnpm 二、简述npm和pnpm 的存储方式和依赖数1.存储方式2.依赖树 三、两者依赖树的差异导致结果的对比四、简单说说-g&#xff0c;--sav…

vue3系列:vite+vue3怎么配置通过ip和端口打开浏览器

目录 1.前言 2.修改前的 3.修改后的 4.效果 5.其他 1.前言 想要使用IP端口号的方式访问页面&#xff0c;结果无法访问 查了些资料&#xff0c;原来是vite.config.js需要加一些配置才能让他通过IP访问&#xff0c;默认的只能localhost:端口号访问 2.修改前的 使用vue3默认…

使用yolov8+flask实现精美登录界面+图片视频摄像头检测系统

这个是使用flask实现好看登录界面和友好的检测界面实现yolov8推理和展示&#xff0c;代码仅仅有2个html文件和一个python文件&#xff0c;真正做到了用最简洁的代码实现复杂功能。 测试通过环境&#xff1a; windows x64 anaconda3python3.8 ultralytics8.3.81 flask1.1.2…

突破连接边界!O9201PM Wi-Fi 6 + 蓝牙 5.4 模块重新定义笔记本无线体验

在当今数字化时代&#xff0c;笔记本电脑已成为人们工作、学习和娱乐的必备工具。而无线连接技术&#xff0c;作为笔记本电脑与外界交互的关键桥梁&#xff0c;其性能的优劣直接关乎用户体验的好坏。当下&#xff0c;笔记本电脑无线连接领域存在诸多痛点&#xff0c;严重影响着…

2025 香港 Web3 嘉年华:全球 Web3 生态的年度盛会

自 2023 年首届香港 Web3 嘉年华成功举办以来&#xff0c;这一盛会已成为全球 Web3 领域规模最大、影响力最深远的行业活动之一。2025 年 4 月 6 日至 9 日&#xff0c;第三届香港 Web3 嘉年华将在香港盛大举行。本届活动由万向区块链实验室与 HashKey Group 联合主办、W3ME 承…

Windows11 新机开荒(二)电脑优化设置

目录 前言&#xff1a; 一、注册微软账号绑定权益 二、此电脑 桌面图标 三、系统分盘及默认存储位置更改 3.1 系统分盘 3.2 默认存储位置更改 四、精简任务栏 总结&#xff1a; 前言&#xff1a; 本文承接上一篇 新机开荒&#xff08;一&#xff09; 上一篇文章地址&…

[C++面试] 标准容器面试点

一、入门 1、vector和list的区别 [C面试] vector 面试点总结 vector 是动态数组&#xff0c;它将元素存储在连续的内存空间中。支持随机访问&#xff0c;即可以通过下标快速访问任意位置的元素&#xff0c;时间复杂度为 O(1)&#xff0c;准确点是均摊O(1)。但在中间或开头插…

蓝桥杯每日一题

丢失的雨伞 题目思路代码演示 题目 今天晚上本来想练习一下前缀和与差分 结果给我搜出来这题&#xff08;几乎没啥关系&#xff09;&#xff0c;我看半天有点思路但又下不了手哈哈&#xff0c;难受一批 在图书馆直接红温了 题目链接 思路 题目要求找到两个不重叠的区间&…