前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Web APIs】DOM 文档对象模型 ② ( 根据标签名获取 DOM 元素 - getElementsByTagName 函数 | 获取指定标签下的 DOM 元素 )

【Web APIs】DOM 文档对象模型 ② ( 根据标签名获取 DOM 元素 - getElementsByTagName 函数 | 获取指定标签下的 DOM 元素 )

作者头像
韩曙亮
发布2024-06-19 13:09:49
590
发布2024-06-19 13:09:49
举报

本博客相关参考文档 :

一、获取 DOM 元素

1、根据标签名获取 DOM 元素 - getElementsByTagName 函数

调用 Document.getElementsByTagName 函数 或 Element.getElementsByTagName 函数 , 可以获取 指定标签名称 的 若干 Element 对象集合 ;

  • 调用 Document 的函数 , 获取的是 整个文档的 指定标签名称 的元素 ;
  • 调用 Element 的函数 , 获取的是 Element 容器下的 指定标签名称 的元素 ;

getElementsByTagName 函数语法如下 :

代码语言:javascript
复制
var elements = document.getElementsByTagName(name);
  • name 参数 : 标签名字符串 , 如 : 要获取 <div> 标签 , 传入 "div" 参数 ;
  • elements 返回值 : 返回的结果是 封装有若干 Element 对象的 HTMLCollection 对象 ;
    • 该对象中的 DOM 元素顺序是按照 DOM 树的 DOM 元素 发现顺序 进行排列的 ;
    • HTMLCollection 对象是一个 " 伪数组 " , 有数组长度 , 也可以使用索引下标访问 , 但是没有数组的 push、pop 等数组函数 ;

代码示例 :

代码语言:javascript
复制
        // 注意 : HTML 文档加载顺序是从上到下加载 
        // 这里要先加载标签 , 然后加载 JavaScript 脚本
        var elements = document.getElementsByTagName("div");

        // 控制台打印获取结果
        console.log(elements);

参考文档 :

完整代码示例 :

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript</title>
    <style></style>

</head>

<body>
    <div>Hello</div>
    <div>Hello</div>
    <div>Hello</div>
    <script>
        // 注意 : HTML 文档加载顺序是从上到下加载 
        // 这里要先加载标签 , 然后加载 JavaScript 脚本
        var elements = document.getElementsByTagName("div");

        // 控制台打印获取结果
        console.log(elements);
    </script>
</body>

</html>

执行结果 : 调用 document.getElementsByTagName 函数获取 网页中的 3 哥 div 元素 , 打印结果如下 :

2、HTMLCollection 遍历及使用

在上面的章节 , 通过 调用 Document 或 Element 的 getElementsByTagName 函数 , 可以获取到 封装了多个 Element DOM 元素的 HTMLCollection 对象 ;

HTMLCollection 对象是 时刻 动态改变的 , 如果 HTML 文档结构发生了改变 , HTMLCollection 对象会进行自动更新 , 如果要操作 HTMLCollection 对象 , 建议先创建副本 , 然后再进行操作 ;

HTMLCollection 是个伪数组对象 , 可以 使用 数组下标的方式获取其中的 Element 元素 , 可以通过该 Element 元素修改标签内容 ;

代码语言:javascript
复制
        var elements = document.getElementsByTagName("div");

        // 遍历 HTMLCollection 中封装的 DOM 元素
        for (var i = 0; i < elements.length; i++) {
            // 打印 DOM 元素
            console.log(elements[i]);

            // 改变 DOM 元素
            elements[i].innerHTML = "你好";
        }

HTMLCollection 文档 : https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLCollection

完整代码示例 :

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript</title>
    <style></style>

</head>

<body>
    <div>Hello</div>
    <div>Hello</div>
    <div>Hello</div>
    <script>
        // 注意 : HTML 文档加载顺序是从上到下加载 
        // 这里要先加载标签 , 然后加载 JavaScript 脚本
        var elements = document.getElementsByTagName("div");
        // 控制台打印获取结果
        console.log(elements);

        // 遍历 HTMLCollection 中封装的 DOM 元素
        for (var i = 0; i < elements.length; i++) {
            // 打印 DOM 元素
            console.log(elements[i]);

            // 改变 DOM 元素
            elements[i].innerHTML = "你好";
        }
    </script>
</body>

</html>

执行结果 :

3、获取指定标签下的 DOM 元素 - getElementsByTagName 函数

上面的示例中都是获取 Document 文档下面的所有 标签名称 对应的 Element 元素 , 如果指向获取某一个指定标签下的 DOM 元素 , 则需要如下步骤 :

  • 首先 , 通过 调用 document.getElementById 函数 , 获取指定标签对应的 Element 元素 ;
  • 然后 , 通过 调用 element.getElementsByTagName 函数 , 获取 Element 元素下的所有 指定类型的标签 ;

代码示例 :

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript</title>
    <style></style>

</head>

<body>
    <div>Hello</div>
    <div>Hello</div>
    <div>Hello</div>

    <div id="nav">
        <div>Hello2</div>
        <div>Hello2</div>
        <div>Hello2</div>
    </div>

    <script>
        // 注意 : HTML 文档加载顺序是从上到下加载 
        // 这里要先加载标签 , 然后加载 JavaScript 脚本

        // 只获取 nav 下的 div
        // 先通过 id 获取 Element
        var element = document.getElementById('nav');

        // 获取 nav 下的 div , 其它的 div 不获取 ★
        elements = element.getElementsByTagName("div");

        // 控制台打印获取结果
        console.log(elements);

        // 遍历 HTMLCollection 中封装的 DOM 元素
        for (var i = 0; i < elements.length; i++) {
            // 打印 DOM 元素
            console.log(elements[i]);

            // 改变 DOM 元素
            elements[i].innerHTML = "你好";
        }
    </script>
</body>

</html>

执行结果 :

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、获取 DOM 元素
    • 1、根据标签名获取 DOM 元素 - getElementsByTagName 函数
      • 2、HTMLCollection 遍历及使用
        • 3、获取指定标签下的 DOM 元素 - getElementsByTagName 函数
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档