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

window、DOM、document、html 他们之间的关系是什么?

1.window

window 对象表示一个包含 DOM 文档的窗口,其 document 属性指向窗口中载入的 DOM 文档 。

2.DOM(document object model)

DOM 树(Document Object Model Tree,文档对象模型树)是浏览器在加载 HTML 或 XML 文档时,根据标签结构构建的一棵树形结构,它把整个网页看作由 节点(Node) 组成的层级关系,从而可以用 JavaScript 来动态操作网页内容。

DOM 与 BOM 的关系:DOM 的核心对象document 是 BOM中window对象的子对象

DOM所处的级别

DOM树的样子

3..document

document是window的一个属性,代表整个网页文档

(下文的HTML 文档就是网页文档的一种形式)

是操作网页内容的主要接口,比如获取元素、修改结构、监听事件等等

下面是在 web 和 XML 页面脚本中使用 DOM 时,一些常用的 API 简要列表。

  • document.querySelector()
  • document.querySelectorAll()
  • document.createElement()

常用API

这些接口可以操作网页的结构、内容与样式:

创建元素对象

  • let d = document.createElement("div");

将新元素到某个元素对象里

  • 元素对象.append(新元素);

修改元素的属性值

  • imgE.src = "money.jpg";

通过 id 获取页面中的元素对象

  • let 元素对象 = document.getElementById('d2');

  • h5 中也可以直接使用 id 值代表元素 console.log(id 值);

通过选择器获取页面中的元素对象

  • let 元素对象 = document.querySelector("选择器");

获取和修改控件的值

  • 元素对象.value 获取

  • 元素对象.value="xxx" 修改

获取和修改元素的文本内容 例:<div>文本内容</div>

  • 元素对象.innerHTML获取

  • 元素对象.innerHTML = “xxx” 修改

4.<html>(HTML元素)

HTML <html> 元素表示 HTML 文档的根(顶级元素),所以它也被称为根元素。其他所有元素必须是此元素的后代。

假设你用浏览器打开一个网页 index.html,浏览器会:

  1. 把 HTML 代码解析成一棵 DOM 树

  2. 创建一个 document 对象来表示这个 HTML 页面

  3. 把这个 document 挂在 DOM树 上

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<!--页面效果点击即可贴入一张图片--><button onclick="funMoney()">点击变富有</button>
</body>
<script>function funMoney(){/*** 1.创建一个img类型的标签* @type {HTMLImageElement}*/let imgE = document.createElement('img');HTMLImageElement/*** 通过打点调用属性来为属性赋值* @type {string}*/imgE.src = 'img/money.jpg';imgE.width = 200;/*** 将img标签添加到body中,也就是挂载到DOM树上* @type {HTMLBodyElement}*/let bodyE = document.querySelector('body');bodyE.append(imgE);}
</script>
</html>

5.总结

window 是浏览器的全局对象,包含了 documentdocument 是 DOM 树的入口,DOM 表示整个网页结构,而 <html> 是这棵 DOM 树的根节点。

http://www.dtcms.com/a/287356.html

相关文章:

  • springboot基础-demo
  • Java中缓存的使用浅讲
  • Netty集群方案详解与实战(Zookeeper + Redis + RabbitMQ)
  • 深入理解设计模式:策略模式的艺术与实践
  • 云端成本治理利器:亚马逊云科技智能仪表盘(AWS Cost Intelligence Dashboard)深度解析
  • Android14 SystemUI 启动流程(2)
  • Spring MVC @RequestParam注解全解析
  • Spring MVC源码分析 DispatcherServlet#getHandlerAdapter方法
  • C# 中的强大运算符
  • 掌握配置文件(一):精通`properties`与`yml`的语法及选择
  • 【iOS】ZARA仿写
  • MySQL详解二
  • ros2高级篇之高可用启动文件及配置编写
  • 深入解析HDFS写入流程:管道机制与数据可靠性保障
  • (Python)类和类的方法(基础教程介绍)(Python基础教程)
  • 7月19日日记
  • SpringAI_Chat模型_DeepSeek模型--基础对话
  • Word快速文本对齐程序开发经验:从需求分析到实现部署
  • 嵌入式单片机开发 - Keil MDK 复制工程
  • Python day18
  • MySQL事务管理(上)(12)
  • xss-labs靶场1-8
  • DAMA数据管理具像化解读|第一章数据管理|业务驱动因素
  • 暑期训练8
  • 13.4 Meta LLaMA开源模型家族全面解析:从Alpaca到Vicuna的技术内幕
  • 外观设计模式
  • 删除debian xdm自启动ibus的配置项
  • 2021 RoboCom 世界机器人开发者大赛-本科组(初赛)解题报告 | 珂学家
  • c语言-数据结构-如何用分冶法求得二叉树的节点数与高度?
  • CSS篇——第一章 六十五项关键技能(上篇)