返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript 中的文档对象模型 DOM
  • 364
分享到

JavaScript 中的文档对象模型 DOM

2024-04-02 19:04:59 364人浏览 薄情痞子
摘要

目录1、什么是DOM2、选择元素3、getElementById()4、querySelector()5、querySelectorAll()6、添加新元素7、更改CSS样式8、如何

1、什么是DOM

DOM 文档对象模型,是 html 和 XML 文档的编程接口,用一个逻辑树来表示一个文档,树的每个分支的终点都是一个节点(node),每个节点都包含着对象(objects),允许从文档中创建、更改或删除元素,还可以向这些元素添加事件,使页面更加动态。

DOM 将 HTML 文档视为节点树,一个节点代表一个 HTML 元素。如下 HTML 代码,以更好地理解 DOM 树结构。


<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta Http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>DOM树结构</title>
    </head>
    <body>
        <h1>DOM对象模型</h1>
        <h2>DOM树结构</h2>
    </body>
</html>

文档称为根节点,包含一个子节点,即 <html> 元素。 <html> 元素包含两个子元素,分别是<head>和<body>元素。

<head><body> 都有自己的子元素,如下图:

可以通过 javascript 访问文档中的这些元素并对其进行更改。下面将介绍如何使用 JavaScript 处理 DOM

2、选择元素

如何选择文档中的元素呢?在 HTML 文档中选择元素有几个不同的方法,下面介绍其中三种方法:

  • getElementById():返回一个匹配特定 ID的元素。
  • querySelector():返回文档中与指定选择器或选择器组匹配的第一个 HTMLElement对象。
  • querySelectorAll():返回与指定的选择器组匹配的文档中的元素列表 (使用深度优先的先序遍历文档的节点)。

3、getElementById()

在 HTML 中,id 是 HTML 元素的唯一标识符,意味着不能为两个不同的元素使用设置相同的 id ,必须要确保 id 在整个文档中的唯一性。

JavaScript 中,可以通过使用 id 名称来获取 HTML 标签。


<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>DOM树结构</title>
    </head>
    <body>
        <h1>DOM对象模型</h1>
        <h2>DOM树结构</h2>
        <p id="intro">DOM 即文档对象模型,它是一个编程接口。</p>

        <script type="text/javascript">
            const elemIntro = document.getElementById("intro");
            console.log(elemIntro);
        </script>
    </body>
</html>

打开开发者工具:

如果需要获取对象中的文本内容,可以使用 textContent 或者 innerText


<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>DOM树结构</title>
    </head>
    <body>
        <h1>DOM对象模型</h1>
        <h2>DOM树结构</h2>
        <p id="intro">DOM 即文档对象模型,它是一个编程接口。</p>

        <script type="text/javascript">
            const elemIntro = document.getElementById("intro");
            console.log(elemIntro);
            // 获取元素内的文本内容
            const elemText = elemIntro.textContent; // elemIntro.innerText 
            console.log(elemText);
        </script>
    </body>
</html>

打开控制器查看:

4、querySelector()

使用此方法查找具有一个或多个 CSS 选择器的元素,下面以国庆电影档期信息为示例,通过 querySelector() 获取相应的标题和列表元素。


<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>DOM树结构</title>
    </head>
    <body>
        <h1>2021国庆电影档期</h1>
        <ul class="movies">
            <li>《长津湖》</li>
            <li>《我和我的父辈》</li>
            <li>《铁道英雄》</li>
        </ul>

        <script type="text/javascript">
            const elemTitle = document.querySelector("h1");
            const elemList = document.querySelector(".movies");
            console.log("h1");
            console.log(elemTitle);
            console.log("ul movies");
            console.log(elemList);
        </script>
    </body>
</html>

在浏览器打开文档,并开启开发者工具,可以看到如下效果:

5、querySelectorAll()

此方法查找与 CSS 选择器匹配的所有元素并返回节点的列表,下面就查找电影档期的每一个 li 元素:


<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>DOM树结构</title>
    </head>
    <body>
        <h1>2021国庆电影档期</h1>
        <ul class="movies">
            <li>《长津湖》</li>
            <li>《我和我的父辈》</li>
            <li>《铁道英雄》</li>
        </ul>

        <script type="text/javascript">
            const elemTitle = document.querySelector("h1");
            const movieItems = document.querySelectorAll(".movies > li");
            console.log(movieItems);
        </script>
    </body>
</html>

控制台打印的效果如下:

对于上述节点列表可以按照下面的方式进行遍历:


<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>DOM树结构</title>
    </head>
    <body>
        <h1>2021国庆电影档期</h1>
        <ul class="movies">
            <li>《长津湖》</li>
            <li>《我和我的父辈》</li>
            <li>《铁道英雄》</li>
        </ul>

        <script type="text/javascript">
            const elemTitle = document.querySelector("h1");
            const movieItems = document.querySelectorAll(".movies > li");
            movieItems.forEach((item) => {
                console.log(item);
            });
        </script>
    </body>
</html>

控制台打印的效果如下:

6、添加新元素

如何向文档添加新元素呢?可以使用 document.createElement() 向 DOM 树添加新元素,通过 textContent 为其新元素添加内容,如下的示例,在电影档期列表中添加新的档期:


<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>DOM树结构</title>
    </head>
    <body>
        <h1>2021国庆电影档期</h1>
        <ul class="movies" id="movies">
            <li>《长津湖》</li>
            <li>《我和我的父辈》</li>
            <li>《铁道英雄》</li>
        </ul>

        <script type="text/javascript">
            const movieItems = document.getElementById("movies");
            const newMovie = document.createElement("li");
            newMovie.textContent = "《老鹰抓小鸡》";
            movieItems.appendChild(newMovie);
        </script>
    </body>
</html>

运行后,页面效果如下:

7、更改CSS样式

如何更改内联 CSS 样式呢?通过使用 style 属性来能够更改 HTML 文档中的 CSS 样式,还是以国庆电影档期为示例,更改页面标题 h1 元素的字体大小和字体颜色:


<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>DOM树结构</title>
    </head>
    <body>
        <h1>2021国庆电影档期</h1>
        <ul class="movies">
            <li>《长津湖》</li>
            <li>《我和我的父辈》</li>
            <li>《铁道英雄》</li>
        </ul>

        <script type="text/javascript">
            const pageTitle = document.querySelector("h1");
            pageTitle.style.fontSize = "24px";
            pageTitle.style.color = "#0000FF";
        </script>
    </body>
</html>

运行后,页面效果如下:

关于CSS样式的属性,在JavaScript中采用驼峰方式,如 font-size JavaScript中对应的属性为 fontSize background-color 就是 backgroundColor

8、如何监听事件

如何使用监听页面上元素的事件?使用方法 addEventListener()  ,下面示例通过点击按钮,在列表中增加新的电影排期,如下:


<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>DOM树结构</title>
    </head>
    <body>
        <h1>2021国庆电影档期</h1>
        <ul id="movies">
            <li>《长津湖》</li>
            <li>《我和我的父辈》</li>
            <li>《铁道英雄》</li>
        </ul>
        <button id="addNew">增加电影《老鹰抓小鸡》</button>
        <script type="text/javascript">
            const moviesList = document.getElementById("movies");
            const button = document.getElementById("addNew");
            const addNewMovie = (movieTitle, elemTarget) => {
                const newMovie = document.createElement("li");
                newMovie.textContent = movieTitle;
                newMovie.style.color = "#ff0000";
                elemTarget.appendChild(newMovie);
            };
            button.addEventListener("click", () => {
                addNewMovie("《老鹰抓小鸡》", moviesList);
            });
        </script>
    </body>
</html>

运行后,页面效果如下:

在实际项目中,事件监听处理比这要负责,对于现代 WEB 开发,丰富的前端框架,对于事件的处理都已经封装的很好了,甚至让开发人员就忘记了事件监听的相关知识,如事件冒泡、事件捕获、事件委托等,本文就不展开了。

结论:

DOM 文档对象模型,是 HTML 和 XML 文档的编程接口。当浏览器首次读取(解析)的 HTML 文档时,它会创建一个大的对象,一个以 HTML 文档为基础的非常大的对象,这个就是 DOM。它是从 HTML 建模的树状结构。DOM 用于交互和修改 DOM 结构 或者特定的元素或节点。

到此这篇关于JavaScript 中的文档对象模型 DOM的文章就介绍到这了,更多相关JavaScript 文档对象模型 DOM内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JavaScript 中的文档对象模型 DOM

本文链接: https://lsjlt.com/news/137545.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaScript 中的文档对象模型 DOM
    目录1、什么是DOM2、选择元素3、getElementById()4、querySelector()5、querySelectorAll()6、添加新元素7、更改CSS样式8、如何...
    99+
    2024-04-02
  • JavaScript文档对象模型DOM
    目录一、JavaScript 能够改变页面中的所有 HTML 元素1、通过 id 找到 HTML 元素2、通过标签名查找 HTML 元素3、通过类名找到 HTML 元素4、JavaS...
    99+
    2024-04-02
  • JavaScript文档对象模型DOM的示例分析
    小编给大家分享一下JavaScript文档对象模型DOM的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言:当网页被加载时,浏览器会创建页面的文档对象模...
    99+
    2023-06-25
  • 如何使用DOM文档对象模型
    这篇文章将为大家详细讲解有关如何使用DOM文档对象模型,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。DOM文档对象模型DOM就是文档对象模型(Documen...
    99+
    2024-04-02
  • 如何理解DOM文档对象模型
    如何理解DOM文档对象模型,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。向大家描述一下DOM文档对象模型,文档对象模型(DocumentO...
    99+
    2024-04-02
  • DOM文档对象模型的知识点有哪些
    这篇文章主要介绍了DOM文档对象模型的知识点有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇DOM文档对象模型的知识点有哪些文章都会有所收获,下面我们一起来看看吧。D:do...
    99+
    2024-04-02
  • javascript文档对象模型是什么
    这篇文章主要介绍“javascript文档对象模型是什么”,在日常操作中,相信很多人在javascript文档对象模型是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ja...
    99+
    2024-04-02
  • 如何解析XML DOM文档对象模型用法
    这期内容当中小编将会给大家带来有关如何解析XML DOM文档对象模型用法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。向大家简单介绍一下XML DOM,XML DOM是X...
    99+
    2024-04-02
  • 使用JS的DOM文档对象模型获取前端循环的参数
    目录使用JS的DOM(文档对象模型)获取前端循环的参数1.网页显示部分2.使用js的DOM获取页面的数据2.1预备知识1)DOM查找元素2) 查找2.2 从网页获取数据使用JS的DO...
    99+
    2023-02-13
    js dom获取前端循环的参数 js文档对象模型 js dom文档对象模型
  • HTML DOM对象模型是怎样的
    本篇文章给大家分享的是有关HTML DOM对象模型是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。这里向大家简单介绍一下HTML DOM...
    99+
    2024-04-02
  • JavaScript Dom对象的操作
    目录一、核心1、获得Dom节点 2、更新节点2.1 实战演练3、删除Dom节点4、插入节点4.1 把已有的标签进行插入4.2 创建一个新的标签,实现插入4.3 在子节点前插入(ins...
    99+
    2024-04-02
  • DOM vs. BOM:浏览器对象模型的终极对决
    DOM(文档对象模型)和BOM(浏览器对象模型)都是浏览器对象模型的重要组成部分,它们都在web开发中发挥着至关重要的作用。然而,它们之间的区别却往往让人感到困惑。在本文中,我们将对DOM和BOM进行详细比较,帮助你了解它们之间的差异以...
    99+
    2024-02-21
    DOM, BOM, JavaScript, Web开发, 文档结构, 事件处理, 浏览器窗口, 导航, 定时器, 屏幕位置
  • DOM 和 BOM 的区别:了解浏览器对象模型
    DOM 和 BOM 的区别 DOM 和 BOM 是浏览器对象模型中的两个重要组成部分,它们用于描述和操作网页的内容及其环境。DOM 代表文档对象模型,而 BOM 代表浏览器对象模型。DOM 主要负责处理和操作网页中的 HTML 元素,而 ...
    99+
    2024-02-21
    DOM BOM javascript 网页 浏览器
  • DOM vs BOM:浏览器对象模型的孪生兄弟
    DOM(文档对象模型)和 BOM(浏览器对象模型)是浏览器对象模型中的两大支柱,它们提供了对浏览器环境和 Web 页面的交互式访问。理解这两个概念至关重要,特别是对于前端开发人员而言。 DOM(文档对象模型) DOM 是一个层次化的结构...
    99+
    2024-03-05
    DOM、BOM、浏览器对象模型、HTML、JavaScript
  • JavaScript 对象在面向对象编程中的作用:理解对象模型的力量
    对象作为数据结构 JavaScript 对象是无序的键值对集合。键和值都可以是任何类型,包括其他对象。这使对象成为存储和组织数据的强大容器。例如,您可以使用对象来表示客户信息,其中键是属性(例如姓名、地址),值是相应的值。 方法封装行为 ...
    99+
    2024-03-13
    导言 JavaScript 对象是面向对象编程(OOP)范式的一个基本构建块。理解其在 OOP 中的强大功能至关重要 因为它使您能够创建灵活、可扩展和可维护的代码。
  • JavaScript中怎么利用DOM修改文档树
    本篇文章为大家展示了JavaScript中怎么利用DOM修改文档树,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。修改文档提供的4个方法,都是指向它们所作用的节点的引...
    99+
    2024-04-02
  • 怎么理解Javascript中浏览器对象模型
    本篇内容主要讲解“怎么理解Javascript中浏览器对象模型”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解Javascript中浏览器对象模型”吧!J...
    99+
    2024-04-02
  • SpringMVC中的几个模型对象
    目录SpringMVC的几个模型对象1.ModelAndView2.Map和modelAndView原理一样3.@SessionAttributesSpringMVC的几个重要对象S...
    99+
    2024-04-02
  • JavaScript 中怎么利用DOM实现文档遍历
    本篇文章给大家分享的是有关JavaScript 中怎么利用DOM实现文档遍历,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。<!--<...
    99+
    2024-04-02
  • DOM对象模型四大基本接口分别是什么
    DOM对象模型四大基本接口分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在DOM对象模型接口规范中,有四个基本的接口,在这四个基...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作