Javascript BOM,DOM 知识简介
JSON
- 一种数据交换格式,作为数据载体,传输数据,
Json比xml更简单,可读性更高. js的对象和Json可以相互转换.
![![[Pasted image 20241124204256.png]]](https://i-blog.csdnimg.cn/direct/26bb63fb632044acb0424d0093e15093.png)
//json定义格式:
var varName='{"key1":value1,"key2":value2}';
value的数据类型为数字,字符串(在双引号中),布尔值,数组(在方括号中),对象(在花括号中),null.- 外面用单引号包裹,里面的键
key用双引号.
`
var json = '{"name":"warren","age":1}'; var w=JSON.parse(json)//将json字符串转化为js对象. console.log(w.name);console.log(JSON.stringify(w));;//将js对象转化为json字符串
BOM
-
是一套操作浏览器窗口的 API,用于控制浏览器的行为
-
组成:
window(窗口对象)
navigator(浏览器信息)
screen(屏幕信息)
history(历史记录)
location(地址栏) -
window是所有BOM对象的顶级对象.
常见的 window 方法
| 方法 | 作用 |
|---|---|
window.open(url, name, features) | 打开新窗口 |
window.close() | 关闭当前窗口 |
window.alert(msg) | 弹出警告框 |
window.confirm(msg) | 弹出确认框(返回 true/false) |
window.prompt(msg, defaultText) | 弹出输入框 |
window.setTimeout(fn, delay) | 延迟执行代码 |
window.setInterval(fn, interval) | 循环执行代码 |
window.clearTimeout(id) | 清除 setTimeout |
window.clearInterval(id) | 清除 setInterval |
// 弹出提示框
window.alert("你好,BOM!");// 3 秒后执行代码
setTimeout(() => {console.log("3秒后执行");
}, 3000);// 每 2 秒打印一次
let interval = setInterval(() => {console.log("每2秒执行一次");
}, 2000);// 5 秒后停止循环
setTimeout(() => {clearInterval(interval);
}, 5000);//地址栏对象
location.href="https://www.bilibili.com/";//为href属性赋值,浏览器会自动跳转到新页面.
DOM
基本概念:
-
文档对象模型, 将标记语言的各个组成部分封装成对象.
-
JavaScript通过DOM对HTML进行操作. -
Document:整个文档对象 -
Element:元素对象 -
Attribute:属性对象 -
Text:文本对象 -
Comment:注释对象 -
浏览器解析后,会形成
DOM树. -
一个页面就是一个
DOM文档(document). -
页面中的标签就是元素(
element).
获取元素
//根据id获取,返回单个Element对象
document.getElementById(id);//根据标签名获取,返回Element对象数组
document.getElemetsByTagName('div');//根据name属性获取,返回Element对象数组
document.getElementsByName('hobby');//根据class属性值获取,返回Element对象数组
document.getElemetByClassName('cls');
操作文本
element.innerText:返回元素的纯文本内容,不包括HTML标签。element.innerHTML:返回元素内的所有HTML内容(包括标签).
删除节点
现代浏览器支持的方法:
var element = document.getElementById('p');element.remove();
这种方法兼容性更好,适用于所有浏览器:
var element = document.getElementById('p');element.parentNode.removeChild(element);
<p id="js">JavaScript</p><div id="list"><p id="se">JavaSE</p><p id="ee">JavaEE</p><p id="me">JavaME</p></div><script>var js = document.getElementById('js');var list = document.getElementById('list');// 创建新的 <p> 元素var newP = document.createElement('p');newP.id = "newP"; // 设置 idnewP.innerText = "Hello, Kuangshen!"; // 设置文本// 将新元素添加到 list 容器中list.appendChild(newP);</script>
setAttribute()
// 1. 获取 DOM 元素
var element = document.getElementById("myElement");// 2. 设置属性
element.setAttribute("class", "active");
element.setAttribute("data-id", "123");
element.setAttribute("title", "这是一个标题");
- 第一个参数是属性名称。
- 第二个参数是要设置的属性值(字符串形式)。
如果属性已存在,则更新它的值,不存在则新建并设置。
相关文章:
Javascript BOM,DOM 知识简介
JSON 一种数据交换格式,作为数据载体,传输数据, Json比xml 更简单,可读性更高.js的对象和Json可以相互转换. //json定义格式: var varName{"key1":value1,"key2":value2};value的数据类型为数字,字符串(在双引号中),布尔值,数组(在方括号中),对象(在花括…...
拆解 “ES 已死“ 伪命题:Agentic RAG 时代搜索引擎的终极形态
作者:来自 Elastic 李捷 xxx:“ES已死,#%#……” 我:??? 最近,某厂商发了一堆公关文章,翻来覆去地炒作 “ES 已死”,“放弃 ES”。这哪是什么正经的技术文章&…...
关于ISP Pipeline LSC(镜头阴影校正)位置的一些想法
关于LSC校正的一些基本原理可以参考如下链接: ISP之LSC 【ISP】浅析Lens Shading ISP-镜头阴影校正(LSC) 这篇博文不打算讲具体的LSC校正原理。 主要是答复一位网友关于LSC校正在ISP Pipeline的问题。 网友问题如下: Rin_Cyn…...
Vue学习笔记集--六大指令
内容渲染指令 内容渲染指令用来辅助开发者渲染 DOM 元素的文本内容。常用的内容渲染指令有如下2 个: v-text(类似innerText) 使用语法:<p v-text"name">hello</p>,意思是将 name 值渲染到 p 标…...
.net 6程序在IIS中部署后点击IIS设置报错“执行此操作时出错”
.net 6写的程序,需要在Windows服务器的IIS中部署,由于是刚装的系统,先安装.net 6运行时,装了才发现没有IIS,于是又通过“添加角色和功能”添加与IIS相关的功能。安装完毕后,在IIS中添加网站,并将…...
《从零手写Linux Shell:详解进程控制、环境变量与内建命令实现 --- 持续更新》
承接上文Linux 进程的创建、终止、等待与程序替换保姆级讲解-CSDN博客,涉及所用到的代码,本文所绑定的资源就是上篇文章的主要代码。 完整代码在文章末尾 目录 1.实现编写代码输出一个命令行 a.如何获取自己的用户名,主机名,路径…...
【Go语言圣经2.4】
目标 理解 在 Go 中,赋值操作既包括最基本的形式(左边一个变量,右边一个表达式),也包括复合赋值、元组赋值和隐式赋值。表达式求值的顺序、变量更新时的副作用以及如何处理多返回值和下划线(_)…...
运维工具推荐 -- 宝塔面板:一键部署服务器
标题:宝塔面板:一键部署服务器,轻松管理你的云端世界 引言 在数字化时代,服务器管理对于个人开发者、中小企业或站长来说既是机遇也是挑战。手动配置服务器环境耗时费力,而 宝塔面板 作为一款 免费开源、功能全面 的服…...
C# 异常处理的核心概念
文章目录 一、异常处理的核心概念二、C# 异常处理的基本语法三、常见异常类型四、最佳实践五、示例:文件读取异常处理六、总结 C# 异常处理的详细说明,包括核心概念、使用方法和最佳实践: 一、异常处理的核心概念 …...
腾讯云点播key防盗链生成到期自动失效url
package com.xmkjsoft.protect_key;import java.nio.charset.StandardCharsets; import java.security.MessageDigest;public class TencentKeyAntiTheft {private static final String SECRET_KEY ""; // 请替换为腾讯云 VOD 控制台中的 Key/*** 生成腾讯云 Key 防…...
深入 Spring Boot 注解
深入 Spring Boot 注解:我的开发心得与常用注解详解 大家好,我是 [你的 CSDN 昵称/名字],一位热爱 Spring Boot 的技术博主。 在多年的 Spring Boot 开发实践中,我深深体会到注解的强大魅力。它们不仅让代码变得更简洁࿰…...
k8s环境部署
四台机器 分别是 k8s-master:172.25.254.100 k8s-node1:172.25.254.10 k8s-node2:172.25.254.20 docker-harbor:172.25.254.200 reg.timinglee.org 四台机器分别配置好网络和软件仓库 做好地址解析 scp -r /etc/hosts/ root17…...
CentOS 系统安装 docker 以及常用插件
博主用的的是WindTerm软件链接的服务器,因为好用 1.链接上服务器登入后,在/root/目录下 2.执行以下命令安装docker sudo yum install -y yum-utilssudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.reposudo…...
谷歌云服务器:服务器怎么安装???
谷歌云服务器:服务器怎么安装??? 以下是详细分步指南,帮助你在 Google Cloud Platform (GCP) 上快速创建并配置云服务器(Compute Engine 实例),并安装所需环境: 一、准备…...
Redis--Zset类型
目录 一、引言 二、介绍 三、命令 1.zadd 2.zrange,zrevrange,zrangebyscore 3.zcard,zcount 4.zpopmax,bzpopmax,zpopmin,bzpopmin 5.zrank,zrevrank,zscore 6.zrem,zremrangebyrank&a…...
《阿里云Data+AI:开启数据智能新时代》电子书上线啦!
本书整理了阿里云在DataAI领域的最新实践案例与深度洞察,涵盖电商、游戏、营销、数字内容等多个行业的成功经验,以及技术专家对数据库与AI融合趋势的专业解读。 通过理论与实践的结合,我们将共同探索DataAI如何成为企业智能化转型的核心驱动…...
图像处理篇---图像预处理
文章目录 前言一、通用目的1.1 数据标准化目的实现 1.2 噪声抑制目的实现高斯滤波中值滤波双边滤波 1.3 尺寸统一化目的实现 1.4 数据增强目的实现 1.5 特征增强目的实现:边缘检测直方图均衡化锐化 二、分领域预处理2.1 传统机器学习(如SVM、随机森林&am…...
Vue 3 事件总线详解:构建组件间高效通信的桥梁
Vue 3 事件总线详解:构建组件间高效通信的桥梁 为什么需要事件总线?使用 mitt 实现事件总线1. 安装 mitt2. 创建事件总线3. 在组件中使用事件总线发送端组件(例如 ComponentA.vue)接收端组件(例如 ComponentB.vue&…...
Golang编译器DIY,手搓 if err != nil { return err } 语法糖
前序 在go的社区里,下面这三行代码是被吐槽的最多的 if err ! nil {return err }从代码之整洁美观的角度看,这样的写法也是让人不舒服的。尤其是 当有很多错误需要处理的时候,就会发现通篇都是这三行。 所以想着看看修改一下编译器…...
图解多头注意力机制:维度变化一镜到底
目录 一、多头注意力机制概述二、代码实现1. pyTorch 实现2. tensorFlow实现 三、维度变化全流程详解1. 参数设定2. 维度变化流程图3. 关键步骤维度变化 四、关键实现细节解析1. 多头拆分与合并2. 注意力分数计算3. 掩码处理技巧 五、完整运行示例六、总结与常见问题1. 核心优势…...
.NET_Prism基本项目创建
Prism简述 模块(Module):独立的功能单元,可动态加载。依赖注入(Dependency Injection,DI):通过 IoC 容器(如 Unity、Autofac)管理模块之间的依赖关系。&#…...
BigEvent项目后端学习笔记(一)用户管理模块 | 注册登录与用户信息全流程解析(含优化)
📖 模块概述 用户管理模块是系统的核心基础模块,包含 注册、登录、用户信息维护 等功能。本模块涉及 JWT Token认证、密码加密存储、文件上传 等关键技术点,是理解前后端分离架构中安全与数据交互的典型实践。本篇对于原项目进行了代码优化&…...
[ISP] 人眼中的颜色
相机是如何记录颜色的,又是如何被显示器还原的? 相机通过记录RGB数值然后显示器显示RGB数值来实现颜色的记录和呈现。道理是这么个道理,但实际上各厂家生产的相机对光的响应各不相同,并且不同厂家显示器对三原色的显示也天差地别&…...
解锁MySQL 8.0.41源码调试:Mac 11.6+CLion 2024.3.4实战指南
文章目录 解锁MySQL 8.0.41源码调试:Mac 11.6CLion 2024.3.4实战指南前期准备环境搭建详细步骤安装 CLion安装 CMake 3.30.5准备 MySQL 8.0.41 源码配置 CMake 选项构建 MySQL 项目 调试环境配置与验证配置 LLDB 调试器启动调试验证调试环境 总结与拓展 解锁MySQL 8…...
celery入门
按照Celery 官方文档,用 Django Celery Redis 写的一个简单项目 如需转载,标记出处 环境准备 1. 安装依赖 pip install django celery redis 创建 Django 项目 1. 创建 Django 项目和 APP django-admin startproject myproject cd myproject python …...
关于xcode Project navigator/项目导航栏的一些说明
本文基于 xcode12.4 版本做说明 首先要明确一点,导航栏这里展示的并不是当前工程在电脑硬盘中的文件结构,它展示的是xxxxxx.xcodeproj/project.pbxproj文件(后文简.pbxproj文件)中的内容。我们在导航栏中的操作就是修改该文件,有些操作会修…...
深度解析扣减系统设计:从架构到实践
背景 在当今数字化业务蓬勃发展的时代,扣减系统在众多业务场景中扮演着关键角色。无论是电商平台的库存扣减,还是金融领域的资金扣减、积分系统的积分扣减,一个高效、可靠且数据一致的扣减系统都是业务稳健运行的基石。本文将深入探讨扣减系…...
视觉定位项目中可以任意修改拍照点位吗?
修改拍照点位不是那么简单 1. 背景2. 修改拍照点位意味着什么?3. 如何解决这个问题? 1. 背景 在视觉定位的项目中,会遇到这么一种情况:完成三步(9点标定,旋转中心标定,示教基准)之…...
深度学习常用操作笔记
深度学习常用操作笔记 指令报错cannot import name Config from mmcvImportError: cannot import name print_log from mmcvImportError: cannot import name init_dist from mmengine.runnerWARNING: Retrying (Retry(total4, connectNone, readNone, redirectNone, statusNon…...
C++学习内存管理
1.概念的介绍 总括: 1. 栈(Stack) 存储内容: 局部变量(包括函数参数、非静态局部变量)。 函数调用的上下文信息(如返回地址、寄存器状态等)。 特点: 内存由编译器自动…...
