【前端基础篇】JavaScript之DOM介绍1

简介: 【前端基础篇】JavaScript之DOM介绍

前言

在阅读过程中可以把代码片复制到vscode上去浏览器看实际效果,更易理解喔😘

WebAPI背景知识

什么是WebAPI

前面学习的 JS 分成三个大的部分

  • ECMAScript: 基础语法部分
  • DOM API: 操作页面结构
  • BOM API: 操作浏览器

WebAPI 就包含了 DOM + BOM. 这个是 W3C 组织规定的. (和制定 ECMAScript 标准的大佬们不是一伙人).

前面学的 JS 基础语法主要学的是 ECMAScript, 这让我们建立基本的编程思维. 相当于练武需要先扎马步. 但是真正来写一个更加复杂的有交互式的页面, 还需要 WebAPI 的支持. 相当于各种招式.


什么是API

API是一个更广义的概念,念. 而 WebAPI 是一个更具体的概念, 特指 DOM+BOM

所谓的 API 本质上就是一些现成的函数/对象, 让程序猿拿来就用, 方便开发.

相当于一个工具箱. 只不过程序猿用的工具箱数目繁多, 功能复杂.

API参考文档

Web API | MDN (mozilla.org)

可以在搜索引擎中按照 “MDN + API 关键字” 的方式搜索, 也能快速找到需要的 API 文档.


DOM基本概念

什么是DOM

什么是 DOM DOM 全称为 Document Object Model.

W3C 标准给我们提供了一系列的函数, 让我们可以操作:

  • 网页内容
  • 网页结构
  • 网页样式

DOM树

一个页面的结构是一个树形结构, 称为 DOM 树.

页面结构形如:

DOM树形结构形如:

重要概念:

  • 文档: 一个页面就是一个 文档, 使用 document 表示.
  • 元素: 页面中所有的标签都称为元素. 使用 element 表示.
  • 节点: 网页中所有的内容都可以称为节点(标签节点, 注释节点, 文本节点, 属性节点等). 使用 node 表示.

这些文档等概念在 JS 代码中就对应一个个的对象.

所以才叫 “文档对象模型” .


查找HTML元素

下面我们将介绍几种常见的DOM元素选择方法。

方法概览

方法 描述
document.getElementById(id) 通过元素 id 来查找元素。
document.getElementsByTagName(name) 通过标签名来查找元素。
document.getElementsByClassName(name) 通过类名来查找元素。
document.querySelector(CSS选择器) 通过CSS选择器选择一个元素。
document.querySelectorAll(CSS选择器) 通过CSS选择器选择多个元素。
1. document.getElementById(id)

getElementById 方法用于通过元素的 id 来查找并返回单个元素。这是最常用的方法之一,因为ID通常是唯一的。

示例代码

<!DOCTYPE html>
<html>
<head>
    <title>getElementById 示例</title>
</head>
<body>
    <div id="myDiv">这是一个 div 元素。</div>

    <script>
        var element = document.getElementById("myDiv");
        console.log(element.innerText);  // 输出: 这是一个 div 元素。
    </script>
</body>
</html>

getElementsByTagName 方法返回具有指定标签名的所有元素的集合(HTMLCollection)。该方法返回的是一个动态集合,意味着如果DOM发生变化,该集合也会更新。

2.document.getElementsByTagName(name)

示例代码

<!DOCTYPE html>
<html>
<head>
    <title>getElementsByTagName 示例</title>
</head>
<body>
    <p>这是第一个段落。</p>
    <p>这是第二个段落。</p>

    <script>
        var elements = document.getElementsByTagName("p");
        console.log(elements.length);  // 输出: 2
        console.log(elements[0].innerText);  // 输出: 这是第一个段落。
    </script>
</body>
</html>
3. document.getElementsByClassName(name)

getElementsByClassName 方法返回具有指定类名的所有元素的集合(HTMLCollection)。与 getElementsByTagName 类似,它返回的是一个动态集合。

示例代码

<!DOCTYPE html>
<html>
<head>
    <title>getElementsByClassName 示例</title>
</head>
<body>
    <div class="myClass">这是第一个 div 元素。</div>
    <div class="myClass">这是第二个 div 元素。</div>

    <script>
        var elements = document.getElementsByClassName("myClass");
        console.log(elements.length);  // 输出: 2
        console.log(elements[1].innerText);  // 输出: 这是第二个 div 元素。
    </script>
</body>
</html>
4. document.querySelector(CSS选择器)

querySelector 方法返回匹配指定CSS选择器的第一个元素。如果有多个匹配的元素,只返回第一个。

示例代码

<!DOCTYPE html>
<html>
<head>
    <title>querySelector 示例</title>
</head>
<body>
    <div class="container">
        <p>这是一个段落。</p>
        <p>这是另一个段落。</p>
    </div>

    <script>
        var element = document.querySelector(".container p");
        console.log(element.innerText);  // 输出: 这是一个段落。
    </script>
</body>
</html>
5. document.querySelectorAll(CSS选择器)

querySelectorAll 方法返回匹配指定CSS选择器的所有元素的静态集合(NodeList)。与 querySelector 不同,它返回所有匹配的元素。

示例代码

<!DOCTYPE html>
<html>
<head>
    <title>querySelectorAll 示例</title>
</head>
<body>
    <div class="container">
        <p>这是第一个段落。</p>
        <p>这是第二个段落。</p>
    </div>

    <script>
        var elements = document.querySelectorAll(".container p");
        console.log(elements.length);  // 输出: 2
        console.log(elements[1].innerText);  // 输出: 这是第二个段落。
    </script>
</body>
</html>

【前端基础篇】JavaScript之DOM介绍2:https://developer.aliyun.com/article/1617359

目录
相关文章
|
2天前
|
JavaScript 前端开发 API
【前端基础篇】JavaScript之jQuery介绍
【前端基础篇】JavaScript之jQuery介绍
13 0
|
2天前
|
JavaScript 前端开发 Java
【前端基础篇】JavaScript之BOM介绍
【前端基础篇】JavaScript之BOM介绍
11 0
|
2天前
|
JavaScript 前端开发 UED
【前端基础篇】JavaScript之DOM介绍2
【前端基础篇】JavaScript之DOM介绍
9 0
|
2天前
|
Web App开发 JavaScript 前端开发
【前端基础篇】JavaScript基础介绍
【前端基础篇】JavaScript基础介绍
7 0
|
5月前
|
前端开发 JavaScript 网络协议
前端最常见的JS面试题大全
【4月更文挑战第3天】前端最常见的JS面试题大全
90 5
|
5月前
|
JavaScript 前端开发
web前端JS高阶面试题(1),高级开发工程师面试
web前端JS高阶面试题(1),高级开发工程师面试
|
5月前
|
JSON JavaScript 前端开发
web前端入门到实战:32道常见的js面试题,2024年最新秋招是直接面试吗
web前端入门到实战:32道常见的js面试题,2024年最新秋招是直接面试吗
|
5月前
|
XML 前端开发 JavaScript
2022 前端JavaScript高频手写面试题大全,助你查漏补缺
2022 前端JavaScript高频手写面试题大全,助你查漏补缺
2022 前端JavaScript高频手写面试题大全,助你查漏补缺
|
5月前
|
存储 消息中间件 编解码
前端面试题——JS篇】
前端面试题——JS篇】
47 1
|
5月前
|
存储 缓存 前端开发
2023前端面试题总结:JavaScript篇完整版(二)
2023前端面试题总结:JavaScript篇完整版(二)