首页 > 其他分享 >浏览器对象模型 BOM和文档对象模型DOM

浏览器对象模型 BOM和文档对象模型DOM

时间:2024-08-25 10:51:01浏览次数:13  
标签:浏览器 DOM 模型 元素 element BOM var document 节点

DOM(文档对象模型,Document Object Model)是一个平台和语言无关的接口,它提供了一种结构化的方法来表示和操作 HTML 和 XML 文档。通过 DOM,文档被表示为一个树状结构,文档的每个部分都可以作为一个对象进行访问和操作。

一 DOM 的基本概念

节点(Node):

DOM 树由各种节点组成,每个节点代表文档的一个部分。主要的节点类型包括:

  • 元素节点(Element Node): 代表文档中的元素(如 <div>、<p>)。
  • 文本节点(Text Node): 代表元素中的文本内容。
  • 属性节点(Attribute Node): 代表元素的属性(如 id=“example”)。
  • 文档节点(Document Node): 代表整个文档。

节点树(Node Tree):

  • DOM 文档结构呈现为一棵树,其中根节点是文档节点。元素节点作为树的分支,而文本节点则作为树的叶子。

访问和操作 DOM:

  • JavaScript 可以用于访问和操作 DOM 节点,实现动态修改网页内容、结构和样式。

1 DOM 操作示例

  • 访问元素节点:
// 获取元素节点
var element = document.getElementById("myElement");

// 获取多个元素节点
var elements = document.getElementsByClassName("myClass");
  • 修改元素内容:
// 修改元素的文本内容
var element = document.getElementById("myElement");
element.textContent = "新的文本内容";

// 修改元素的 HTML 内容
element.innerHTML = "<strong>新的 HTML 内容</strong>";
  • 修改元素属性:
// 修改元素的属性
var element = document.getElementById("myElement");
element.setAttribute("class", "newClass");

// 获取元素的属性
var className = element.getAttribute("class");
  • 添加和删除元素:
// 创建新元素
var newElement = document.createElement("div");
newElement.textContent = "这是一个新创建的元素";

// 将新元素添加到 DOM 中
document.body.appendChild(newElement);

// 删除元素
var elementToRemove = document.getElementById("removeMe");
elementToRemove.parentNode.removeChild(elementToRemove);
  • 修改样式:
// 修改元素的 CSS 样式
var element = document.getElementById("myElement");
element.style.color = "blue";
element.style.fontSize = "20px";
  • 事件处理:
// 为元素添加事件监听器
var button = document.getElementById("myButton");
button.addEventListener("click", function() {
  alert("按钮被点击了!");
});

// 也可以使用传统的方式
button.onclick = function() {
  alert("按钮被点击了!");
};

2 常用 DOM 方法和属性

  • document.getElementById(id): 根据 ID 获取单个元素。

  • document.getElementsByClassName(className): 根据类名获取多个元素。

  • document.getElementsByTagName(tagName): 根据标签名获取多个元素。

  • document.querySelector(selector): 根据 CSS 选择器获取单个元素。

  • document.querySelectorAll(selector): 根据 CSS 选择器获取多个元素。

  • element.appendChild(node): 将一个节点添加到指定元素的子节点列表中。

 <ul id="myList">
        <li>1</li>
        <li>2</li>
    </ul>
    <button onclick="addItem()">添加新项目</button>

    <script>
        function addItem() {
            var ul = document.getElementById("myList");
            var li = document.createElement("li");
            li.textContent = "新项目";
            ul.appendChild(li);
        }
    </script>
  • element.removeChild(node): 从指定元素中删除一个子节点。
<ul id="myList">
        <li>项目 1</li>
        <li>项目 2</li>
        <li id="removeMe">项目 3</li>
    </ul>
    <button onclick="removeItem()">删除项目 3</button>

    <script>
        function removeItem() {
            var item = document.getElementById("removeMe");
            item.parentNode.removeChild(item);
        }
    </script>
  • element.classList.add(className): 向元素添加一个或多个类名。
  • element.classList.remove(className): 从元素中移除一个或多个类名。
  • setAttribute 和 getAttribute: 设置或获取元素的属性值。
 <input type="text" id="myInput" placeholder="输入一些文本">
    <button onclick="setPlaceholder()">设置占位符</button>
    <button onclick="showPlaceholder()">显示占位符</button>

    <script>
        function setPlaceholder() {
            var input = document.getElementById("myInput");
            input.setAttribute("placeholder", "新的占位符文本");
        }

        function showPlaceholder() {
            var input = document.getElementById("myInput");
            alert("当前占位符: " + input.getAttribute("placeholder"));
        }
    </script>

DOM 使得网页能够动态变化,提升了网页的交互性和用户体验。通过 JavaScript 操作 DOM,开发者可以在页面加载后动态地修改内容、响应用户操作和实现复杂的交互效果。

二 浏览器对象模型 BOM

浏览器对象模型(BOM,Browser Object Model)是 Web 浏览器提供的一组 JavaScript 对象和方法,用于与浏览器进行交互。BOM 使得 JavaScript 可以访问浏览器的功能,除了 Web 页面的内容和结构之外,还可以控制浏览器窗口、历史记录、导航、用户代理信息等。下面是 BOM 的一些核心组件及其功能:

1. window 对象

window 对象是 BOM 的核心,表示浏览器窗口。所有其他 BOM 对象都是 window 对象的属性。

常用属性和方法:

  • window.alert(message):显示一个警告框。
  • window.confirm(message):显示一个确认框,返回用户的选择(true 或 false)。
  • window.prompt(message, default):显示一个提示框,允许用户输入文本。
  • window.location:表示当前文档的 URL 和浏览器的地址栏。可以用来获取和设置 URL。
  • window.history:访问浏览器的历史记录。
  • window.navigator:提供有关浏览器和操作系统的信息。
  • window.localStorage 和 window.sessionStorage:用于存储数据在本地存储和会话存储中。

2. location 对象

location 对象用于处理当前文档的 URL。

常用属性和方法:

  • location.href:获取或设置当前 URL。
  • location.protocol:获取当前 URL 的协议(如 http: 或 https:)。
  • location.host:获取当前 URL 的主机(包括端口号)。
  • location.pathname:获取当前 URL 的路径。
  • location.search:获取当前 URL 的查询字符串。
  • location.hash:获取当前 URL 的锚点。
  • location.assign(url):加载新的 URL。
  • location.reload():重新加载当前页面。
  • location.replace(url):加载新的 URL,并替换当前页面,不会在历史记录中留下记录。

3 history 对象

history 对象提供对浏览器历史记录的访问。

常用方法:

  • history.back():返回到历史记录中的前一个页面。
  • history.forward():前进到历史记录中的下一个页面。
  • history.go(n):前进或后退到历史记录中的第 n 个页面。
  • history.length:返回历史记录的数量。

4 navigator 对象

navigator 对象提供有关浏览器的信息,如用户代理字符串和浏览器的功能支持情况。

常用属性:

  • navigator.userAgent:返回一个字符串,表示浏览器的用户代理(即浏览器的名称、版本号等信息)。
  • navigator.platform:返回操作系统平台的字符串。
  • navigator.language:返回浏览器的语言设置。
  • navigator.cookieEnabled:指示浏览器是否启用 Cookies。

5 screen 对象

screen 对象提供有关用户屏幕的信息。

常用属性:

  • screen.width:屏幕的宽度(以像素为单位)。
  • screen.height:屏幕的高度(以像素为单位)。
  • screen.availWidth:可用的屏幕宽度(不包括任务栏等)。
  • screen.availHeight:可用的屏幕高度(不包括任务栏等)。

总结
BOM 允许 JavaScript 脚本与浏览器的各个方面进行交互,从而使开发者能够构建更加动态和互动的网页。掌握 BOM 的使用方法对于前端开发者来说是非常重要的。

标签:浏览器,DOM,模型,元素,element,BOM,var,document,节点
From: https://blog.csdn.net/qq_48763502/article/details/141430190

相关文章

  • 使用HF Trainer微调小模型
    本文记录HugginngFace的Trainer各种常见用法。SFTTrainer的一个最简单例子HuggingFace的各种Trainer能大幅简化我们预训练和微调的工作量。能简化到什么程度?就拿我们个人用户最常会遇到的用监督学习微调语言模型任务为例,只需要定义一个SFTrainer,给定我们想要训练的模型和数据......
  • YOLOv8超详细环境搭建以及模型训练(GPU版本)
    目录1.安装CUDA和cuDNN1.1安装CUDA1.1.1查看当前你的电脑显卡支持的最高CUDA版本,后面的安装不能超过它1.1.2下载CUDA(官网或者百度网盘)1.1.3安装CUDA11.81.2配置cuDNN1.2.1下载cuDNN(官网或者百度网盘)1.2.2配置cuDNN2.安装Anaconda2.1下载Anaconda2.2安装Anacon......
  • iTransformer时序模型改进——基于SENet和TCN的倒置Transformer,性能暴涨
    1数据集介绍ETT(电变压器温度):由两个小时级数据集(ETTh)和两个15分钟级数据集(ETTm)组成。它们中的每一个都包含2016年7月至2018年7月的七种石油和电力变压器的负载特征。 数据集链接:https://drive.google.com/drive/folders/1ZOYpTUa82_jCcxIdTmyr0LXQfvaM9vIy......
  • 【自动驾驶】控制算法(三)轮胎侧偏与车辆动力学模型
    写在前面:......
  • 大模型简介
    大模型简介大语言模型,也称大型语言模型,是一种旨在理解和生成人类语言的人工智能模型。检索增强生成。该架构巧妙地整合了从庞大知识库中检索到的相关信息,并以此为基础,指导大型语言模型生成更为精准的答案,从而显著提升了回答的准确性与深度。LangChain框架是一个开源工具,充分利......
  • JUC7-共享模型之工具
    线程池自定义线程池importlombok.extern.slf4j.Slf4j;importorg.springframework.core.log.LogDelegateFactory;importjava.util.ArrayDeque;importjava.util.Deque;importjava.util.HashSet;importjava.util.concurrent.TimeUnit;importjava.util.concurrent......
  • random库
    random库1.随机种子random.seed()系统默认将时间戳设置为随机种子,每次随机数不一样,当手动设置后,每次随机产生的数会一样2.随机数字random.randint(a,b)从a,b之间随机一个整数random.randrange(a,b,stridw)从a到b,步长为s的序列中,随机一个数字random.random()从0~1......
  • 模型 KJ分析法(亲和图法)
    系列文章分享 模型,了解更多......
  • 150页的极简大模型入门蛇尾书,学大模型太简单了
    如果问个问题:有哪些产品曾经创造了伟大的奇迹?ChatGPT应该会当之无愧入选。仅仅发布5天,ChatGPT就吸引了100万用户——当然,数据不是关键,关键是其背后的技术开启了新的AI狂潮,成为技术变革的点火器。就算我们这些周边吃瓜群众都日日活在ChatGPT带来的震撼里,更不用说在......
  • AI绘画SD三分钟入门教程!秋叶大佬8月最新的Stable Diffusion整合包V4.9来了,完整安装部
    大家好,我是画画的小强前几天8月15日,国内AI绘画工具开源大佬更新了StableDiffusion整合包最新版本4.9,相关信息从图中能看到,本次更新后SDWebUI已经能够支持最新的AI绘画大模型SD3.0,以及更新了SD最强的控制插件ControlNet的ControlNetUnion模型,在使用方面上,新版本对比旧版......