Javascript BOM,DOM 知识简介

news2025/4/16 23:32:38
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";             // 设置 id
    newP.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", "这是一个标题");
  • 第一个参数是属性名称。
  • 第二个参数是要设置的属性值(字符串形式)。

如果属性已存在,则更新它的值,不存在则新建并设置。

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

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

相关文章

拆解 “ES 已死“ 伪命题:Agentic RAG 时代搜索引擎的终极形态

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

.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;路径…

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如何成为企业智能化转型的核心驱动…

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. 核心优势…

[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…

关于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; 内存由编译器自动…

git使用。创建仓库,拉取分支,新建分支开发

文章目录 安装 git自己新建仓库&#xff0c;进行代码管理合作开发的流程拉去主分支代码查看本地分支的状态查看远程分支查看远程的仓库信息本地分支切换切换并创建分支提交代码 made by NJITZX git 是一个版本控制工具&#xff0c;真正开发项目中是多个人开发一个项目的&#…

itsdangerous加解密源码分析|BUG汇总

这是我这两天的思考 早知道密码学的课就不旷那么多了 纯个人见解 如需转载&#xff0c;标记出处 目录 一、官网介绍 二、事例代码 源码分析&#xff1a; 加密函数dump源码使用的函数如下&#xff1a; 解密 ​编辑 ​编辑 关于签名&#xff1a; 为什么这个数字签名没有…

不像人做的题————十四届蓝桥杯省赛真题解析(上)A,B,C,D题解析

题目A&#xff1a;日期统计 思路分析&#xff1a; 本题的题目比较繁琐&#xff0c;我们采用暴力加DFS剪枝的方式去做&#xff0c;我们在DFS中按照8位日期的每一个位的要求进行初步剪枝找出所有的八位子串&#xff0c;但是还是会存在19月的情况&#xff0c;为此还需要在CHECK函数…