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

Javascript BOM,DOM 知识简介

JSON
  • 一种数据交换格式,作为数据载体,传输数据, Jsonxml 更简单,可读性更高.
  • js的对象和Json可以相互转换.
    ![[Pasted image 20241124204256.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通过DOMHTML进行操作.

  • 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 时代搜索引擎的终极形态

作者&#xff1a;来自 Elastic 李捷 xxx&#xff1a;“ES已死&#xff0c;#%#……” 我&#xff1a;&#xff1f;&#xff1f;&#xff1f; 最近&#xff0c;某厂商发了一堆公关文章&#xff0c;翻来覆去地炒作 “ES 已死”&#xff0c;“放弃 ES”。这哪是什么正经的技术文章&…...

关于ISP Pipeline LSC(镜头阴影校正)位置的一些想法

关于LSC校正的一些基本原理可以参考如下链接&#xff1a; ISP之LSC 【ISP】浅析Lens Shading ISP-镜头阴影校正&#xff08;LSC&#xff09; 这篇博文不打算讲具体的LSC校正原理。 主要是答复一位网友关于LSC校正在ISP Pipeline的问题。 网友问题如下&#xff1a; Rin_Cyn…...

Vue学习笔记集--六大指令

内容渲染指令 内容渲染指令用来辅助开发者渲染 DOM 元素的文本内容。常用的内容渲染指令有如下2 个&#xff1a; v-text&#xff08;类似innerText&#xff09; 使用语法&#xff1a;<p v-text"name">hello</p>&#xff0c;意思是将 name 值渲染到 p 标…...

.net 6程序在IIS中部署后点击IIS设置报错“执行此操作时出错”

.net 6写的程序&#xff0c;需要在Windows服务器的IIS中部署&#xff0c;由于是刚装的系统&#xff0c;先安装.net 6运行时&#xff0c;装了才发现没有IIS&#xff0c;于是又通过“添加角色和功能”添加与IIS相关的功能。安装完毕后&#xff0c;在IIS中添加网站&#xff0c;并将…...

《从零手写Linux Shell:详解进程控制、环境变量与内建命令实现 --- 持续更新》

承接上文Linux 进程的创建、终止、等待与程序替换保姆级讲解-CSDN博客&#xff0c;涉及所用到的代码&#xff0c;本文所绑定的资源就是上篇文章的主要代码。 完整代码在文章末尾 目录 1.实现编写代码输出一个命令行 a.如何获取自己的用户名&#xff0c;主机名&#xff0c;路径…...

【Go语言圣经2.4】

目标 理解 在 Go 中&#xff0c;赋值操作既包括最基本的形式&#xff08;左边一个变量&#xff0c;右边一个表达式&#xff09;&#xff0c;也包括复合赋值、元组赋值和隐式赋值。表达式求值的顺序、变量更新时的副作用以及如何处理多返回值和下划线&#xff08;_&#xff09…...

运维工具推荐 -- 宝塔面板:一键部署服务器

标题&#xff1a;宝塔面板&#xff1a;一键部署服务器&#xff0c;轻松管理你的云端世界 引言 在数字化时代&#xff0c;服务器管理对于个人开发者、中小企业或站长来说既是机遇也是挑战。手动配置服务器环境耗时费力&#xff0c;而 宝塔面板 作为一款 免费开源、功能全面 的服…...

C# 异常处理‌的核心概念

文章目录 一、异常处理的核心概念‌‌二、C# 异常处理的基本语法‌‌三、常见异常类型‌‌四、最佳实践‌‌五、示例&#xff1a;文件读取异常处理‌‌六、总结‌ C# 异常处理‌的详细说明&#xff0c;包括核心概念、使用方法和最佳实践&#xff1a; 一、异常处理的核心概念‌ …...

腾讯云点播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 注解&#xff1a;我的开发心得与常用注解详解 大家好&#xff0c;我是 [你的 CSDN 昵称/名字]&#xff0c;一位热爱 Spring Boot 的技术博主。 在多年的 Spring Boot 开发实践中&#xff0c;我深深体会到注解的强大魅力。它们不仅让代码变得更简洁&#xff0…...

k8s环境部署

四台机器 分别是 k8s-master&#xff1a;172.25.254.100 k8s-node1&#xff1a;172.25.254.10 k8s-node2&#xff1a;172.25.254.20 docker-harbor&#xff1a;172.25.254.200 reg.timinglee.org 四台机器分别配置好网络和软件仓库 做好地址解析 scp -r /etc/hosts/ root17…...

CentOS 系统安装 docker 以及常用插件

博主用的的是WindTerm软件链接的服务器&#xff0c;因为好用 1.链接上服务器登入后&#xff0c;在/root/目录下 2.执行以下命令安装docker sudo yum install -y yum-utilssudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.reposudo…...

谷歌云服务器:服务器怎么安装???

谷歌云服务器&#xff1a;服务器怎么安装&#xff1f;&#xff1f;&#xff1f; 以下是详细分步指南&#xff0c;帮助你在 Google Cloud Platform (GCP) 上快速创建并配置云服务器&#xff08;Compute Engine 实例&#xff09;&#xff0c;并安装所需环境&#xff1a; 一、准备…...

Redis--Zset类型

目录 一、引言 二、介绍 三、命令 1.zadd 2.zrange&#xff0c;zrevrange&#xff0c;zrangebyscore 3.zcard&#xff0c;zcount 4.zpopmax&#xff0c;bzpopmax&#xff0c;zpopmin&#xff0c;bzpopmin 5.zrank,zrevrank,zscore 6.zrem&#xff0c;zremrangebyrank&a…...

《阿里云Data+AI:开启数据智能新时代》电子书上线啦!

本书整理了阿里云在DataAI领域的最新实践案例与深度洞察&#xff0c;涵盖电商、游戏、营销、数字内容等多个行业的成功经验&#xff0c;以及技术专家对数据库与AI融合趋势的专业解读。 通过理论与实践的结合&#xff0c;我们将共同探索DataAI如何成为企业智能化转型的核心驱动…...

图像处理篇---图像预处理

文章目录 前言一、通用目的1.1 数据标准化目的实现 1.2 噪声抑制目的实现高斯滤波中值滤波双边滤波 1.3 尺寸统一化目的实现 1.4 数据增强目的实现 1.5 特征增强目的实现&#xff1a;边缘检测直方图均衡化锐化 二、分领域预处理2.1 传统机器学习&#xff08;如SVM、随机森林&am…...

Vue 3 事件总线详解:构建组件间高效通信的桥梁

Vue 3 事件总线详解&#xff1a;构建组件间高效通信的桥梁 为什么需要事件总线&#xff1f;使用 mitt 实现事件总线1. 安装 mitt2. 创建事件总线3. 在组件中使用事件总线发送端组件&#xff08;例如 ComponentA.vue&#xff09;接收端组件&#xff08;例如 ComponentB.vue&…...

Golang编译器DIY,手搓 if err != nil { return err } 语法糖

前序 在go的社区里&#xff0c;下面这三行代码是被吐槽的最多的 if err ! nil {return err }从代码之整洁美观的角度看&#xff0c;这样的写法也是让人不舒服的。尤其是 当有很多错误需要处理的时候&#xff0c;就会发现通篇都是这三行。 所以想着看看修改一下编译器&#xf…...

图解多头注意力机制:维度变化一镜到底

目录 一、多头注意力机制概述二、代码实现1. pyTorch 实现2. tensorFlow实现 三、维度变化全流程详解1. 参数设定2. 维度变化流程图3. 关键步骤维度变化 四、关键实现细节解析1. 多头拆分与合并2. 注意力分数计算3. 掩码处理技巧 五、完整运行示例六、总结与常见问题1. 核心优势…...

.NET_Prism基本项目创建

Prism简述 模块&#xff08;Module&#xff09;&#xff1a;独立的功能单元&#xff0c;可动态加载。依赖注入&#xff08;Dependency Injection&#xff0c;DI&#xff09;&#xff1a;通过 IoC 容器&#xff08;如 Unity、Autofac&#xff09;管理模块之间的依赖关系。&#…...

BigEvent项目后端学习笔记(一)用户管理模块 | 注册登录与用户信息全流程解析(含优化)

&#x1f4d6; 模块概述 用户管理模块是系统的核心基础模块&#xff0c;包含 注册、登录、用户信息维护 等功能。本模块涉及 JWT Token认证、密码加密存储、文件上传 等关键技术点&#xff0c;是理解前后端分离架构中安全与数据交互的典型实践。本篇对于原项目进行了代码优化&…...

[ISP] 人眼中的颜色

相机是如何记录颜色的&#xff0c;又是如何被显示器还原的&#xff1f; 相机通过记录RGB数值然后显示器显示RGB数值来实现颜色的记录和呈现。道理是这么个道理&#xff0c;但实际上各厂家生产的相机对光的响应各不相同&#xff0c;并且不同厂家显示器对三原色的显示也天差地别&…...

解锁MySQL 8.0.41源码调试:Mac 11.6+CLion 2024.3.4实战指南

文章目录 解锁MySQL 8.0.41源码调试&#xff1a;Mac 11.6CLion 2024.3.4实战指南前期准备环境搭建详细步骤安装 CLion安装 CMake 3.30.5准备 MySQL 8.0.41 源码配置 CMake 选项构建 MySQL 项目 调试环境配置与验证配置 LLDB 调试器启动调试验证调试环境 总结与拓展 解锁MySQL 8…...

celery入门

按照Celery 官方文档&#xff0c;用 Django Celery Redis 写的一个简单项目 如需转载&#xff0c;标记出处 环境准备 1. 安装依赖 pip install django celery redis 创建 Django 项目 1. 创建 Django 项目和 APP django-admin startproject myproject cd myproject python …...

关于xcode Project navigator/项目导航栏的一些说明

本文基于 xcode12.4 版本做说明 首先要明确一点&#xff0c;导航栏这里展示的并不是当前工程在电脑硬盘中的文件结构&#xff0c;它展示的是xxxxxx.xcodeproj/project.pbxproj文件(后文简.pbxproj文件)中的内容。我们在导航栏中的操作就是修改该文件&#xff0c;有些操作会修…...

深度解析扣减系统设计:从架构到实践

背景 在当今数字化业务蓬勃发展的时代&#xff0c;扣减系统在众多业务场景中扮演着关键角色。无论是电商平台的库存扣减&#xff0c;还是金融领域的资金扣减、积分系统的积分扣减&#xff0c;一个高效、可靠且数据一致的扣减系统都是业务稳健运行的基石。本文将深入探讨扣减系…...

视觉定位项目中可以任意修改拍照点位吗?

修改拍照点位不是那么简单 1. 背景2. 修改拍照点位意味着什么&#xff1f;3. 如何解决这个问题&#xff1f; 1. 背景 在视觉定位的项目中&#xff0c;会遇到这么一种情况&#xff1a;完成三步&#xff08;9点标定&#xff0c;旋转中心标定&#xff0c;示教基准&#xff09;之…...

深度学习常用操作笔记

深度学习常用操作笔记 指令报错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.概念的介绍 总括&#xff1a; 1. 栈&#xff08;Stack&#xff09; 存储内容&#xff1a; 局部变量&#xff08;包括函数参数、非静态局部变量&#xff09;。 函数调用的上下文信息&#xff08;如返回地址、寄存器状态等&#xff09;。 特点&#xff1a; 内存由编译器自动…...