【学习笔记39】获取DOM标签对象

news2025/2/27 8:47:49

获取DOM标签对象

    • 一、认识DOM
    • 二、获取非常规DOM(html head body)
      • 1、HTML
      • 2、head
      • 3、body
    • 三、获取常规DOM
      • (一)按照类名、标签名和ID名获取标签
        • 1、类名(`伪数组`)
        • 2、标签名(`伪数组`)
        • 3、ID名(`唯一性`)
      • (二)按照选择器获取标签
        • 1、querySelector
        • 2、querySelectorAll(`伪数组`)
    • 四、innerHTML与innerText
      • (一)innerHTML
        • 1、获取页面的div标签
        • 2、操作元素的属性
      • (二)innerText
        • 1、获取页面的div标签
        • 2、操作元素的属性
    • 五、元素属性的获取设置与移出
      • (一)需求: 获取元素的某些属性
      • (二)需求: 修改某些元素的某些属性
      • (三)移出某些元素的某个属性
    • 六、H5自定义属性
      • (一)获取H5自定义属性
      • (二)设置语法
      • (三)删除语法
    • 七、获取元素类名
      • (一)第一种语法
        • 1、获取语法
        • 2、设置语法
      • (二)第二种语法
        • 1、获取语法
        • 2、设置语法
        • 3、删除语法
    • 八、获取元素样式
      • (一)获取元素样式(行内)
        • 1、获取元素样式
        • 2、设置元素样式
      • (二)获取元素样式
        • 1、非行内
        • 2、获取元素样式


笔记首发

一、认识DOM

  1. 对页面删除一个节点,增加一个节点
  2. 对某一个节点添加一个class类名删除某一个节点的class类名

二、获取非常规DOM(html head body)

1、HTML

  • HTML语法: document.documentElement;
        var htmlEle = document.documentElement;
        console.log(htmlEle);

在这里插入图片描述

2、head

  • 语法:head语法: document.head;
        var headEle = document.head;
        console.log(headEle);

在这里插入图片描述

3、body

  • 语法:body语法: document.body;
        var bodyEle = document.body;
        console.log(bodyEle);

在这里插入图片描述

三、获取常规DOM

(一)按照类名、标签名和ID名获取标签

  • JS在获取常规元素时与CSS一样, 可以通过 类名、标签名和ID名
    <div class="box">我是具有class的box1</div>
    <div class="box" id="box2">我是具有class的box2</div>
    <div class="box">我是具有class的box3</div>
    <p>我是一个P标签</p>

1、类名(伪数组)

        var oBox = document.getElementsByClassName('box');
        console.log(oBox);

在这里插入图片描述

  1. oBox是一个伪数组, 想要获取到某一个元素, 可以通过下标
  2. 不管页面具有这个类名的元素有多少个, 获取到的永远是伪数组的形式
  3. 伪数组: 长得和数组类似, 有下标有length, 但是没有数组的常用方法

2、标签名(伪数组)

        var oDiv = document.getElementsByTagName('div');
        console.log(oDiv);
        console.log(oDiv[0]);

在这里插入图片描述

注意:oDiv也是一个伪数组, 想要获取到某一个元素, 可以通过下标

3、ID名(唯一性)

        var oBox2 = document.getElementById('box2');
        console.log(oBox2);

在这里插入图片描述

  • 因为ID通常都是独一无二
  • 所以这里获取到的就是一个具有 box2 ID名的标签, 而不是一个伪数组

(二)按照选择器获取标签

1、querySelector

  • 获取到满足条件的第一个标签
        var myDiv = document.querySelector('.box');
        console.log(myDiv);

在这里插入图片描述

2、querySelectorAll(伪数组)

  • 获取到满足条件的所有标签
        var myDivAll = document.querySelectorAll('.box');
        console.log(myDivAll);

在这里插入图片描述

四、innerHTML与innerText

    <div>
        我是DIV的文本
        <p>
            我是P的文本
            <span>
                我是SPAN的文本
            </span>
        </p>
        <div>
            我是内部DIV的文本
        </div>
    </div>

(一)innerHTML

1、获取页面的div标签

  • 获取到标签内部的文本与HTML结构
        // 获取页面的div标签
        var oDiv = document.querySelector('div');    
        console.log(oDiv.innerHTML);

在这里插入图片描述

2、操作元素的属性

  • 赋值时会识别字符串中的html结构
  • 如果有实际的标签, 会把它当成标签渲染到页面上
        var oDiv = document.querySelector('div');    
        oDiv.innerHTML = '1234567890';
        oDiv.innerHTML = '<div>1234567890</div>';

在这里插入图片描述

(二)innerText

1、获取页面的div标签

只会获取到页面结构的文本内容, HTML结构会被忽略掉

        var oDiv = document.querySelector('div');    
        console.log(oDiv.innerText);

在这里插入图片描述

2、操作元素的属性

  • 赋值时不会识别字符串中的html结构
  • 如果有实际的标签, 会把它当成字符串渲染到页面上
        // 获取页面的div标签
        var oDiv = document.querySelector('div');    
        oDiv.innerText = '1234567890';
        oDiv.innerText = '<div>1234567890<div>';

在这里插入图片描述

五、元素属性的获取设置与移出

    <div class="box" a="100" b="200">我是div标签</div>

(一)需求: 获取元素的某些属性

  • 语法: 元素.getAttribute('要查询的属性名');
        // 1. 获取元素
        var oBox = document.getElementsByClassName('box')[0];
        console.log(oBox);

        // 2. 获取元素的某些属性
        console.log(oBox.getAttribute('class'));
        console.log(oBox.getAttribute('a'));
        console.log(oBox.getAttribute('b'));

在这里插入图片描述

(二)需求: 修改某些元素的某些属性

  • 语法: 元素.setAttribute('要设置的属性名', '要设置的属性值');
        var oBox = document.getElementsByClassName('box')[0];
        oBox.setAttribute('a', 'qwer');
        oBox.setAttribute('b', 'asdf');
        oBox.setAttribute('qqq', 'qqqq123123');
        console.log(oBox);

在这里插入图片描述

(三)移出某些元素的某个属性

语法: 元素.removeAttribute('要移除的属性名');

        var oBox = document.getElementsByClassName('box')[0];
        oBox.removeAttribute('b');
        console.log(oBox);

在这里插入图片描述

六、H5自定义属性

    <div qq="123" data-cs="123456789">H5新增自定义属性</div>
        /**
         *  data-cs="123456789"
         *      H5自定义属性中data-       是固定的
         *      cs是我实际的属性名
         *      "123456789"是我实际的属性值
        */

(一)获取H5自定义属性

  • 获取语法:元素.dataset.属性名
        var oDiv = document.querySelector('div');
        console.log(oDiv)

        console.log(oDiv.dataset.cs);

在这里插入图片描述

(二)设置语法

  • 语法:元素.dataset.属性名 = 属性值;
  • 标签中实际拥有; 做修改操作
  • 标签中实际没有; 做新增操作
        var oDiv = document.querySelector('div');

        // 设置语法
        oDiv.dataset.cs = 'qwertyuiop';  // 标签中实际拥有; 做修改操作
        oDiv.dataset.age = 18;           // 标签中实际没有; 做新增操作

        console.log(oDiv);

在这里插入图片描述

(三)删除语法

  • 语法:delete 元素.dataset.属性名;
        var oDiv = document.querySelector('div');

        // 删除操作
        delete oDiv.dataset.cs;
        console.log(oDiv);

在这里插入图片描述

七、获取元素类名

    <div class="item box">我是一个具有两个类名的DIV</div>

(一)第一种语法

1、获取语法

  • 获取语法:元素.className
        var oDiv = document.querySelector('div');
        console.log(oDiv);
        
        //获取语法
        console.log(oDiv.className);

在这里插入图片描述

2、设置语法

  • 设置语法: 元素.className = '新的类名';
        var oDiv = document.querySelector('div');
        oDiv.className = oDiv.className + ' new_box';

在这里插入图片描述

(二)第二种语法

1、获取语法

  • 获取语法(伪数组):元素.classList
        var oDiv = document.querySelector('div');

        // 获取语法
        console.log(oDiv.classList);

在这里插入图片描述

2、设置语法

  • 设置语法: 元素.classList.add('新的类名')
        var oDiv = document.querySelector('div');

        // 设置语法
        oDiv.classList.add('new_box');

在这里插入图片描述

3、删除语法

  • 删除语法: 元素.classList.remove('要删除的类名')
        var oDiv = document.querySelector('div');

        //删除语法
        oDiv.classList.remove('box');

在这里插入图片描述

八、获取元素样式

(一)获取元素样式(行内)

<div class="box" style="width: 200px; height: 300px; background-color: pink"> 我是一个具有样式的div </div>
  • 语法: 元素.style.某个CSS属性
  • 只能获取到行内样式

1、获取元素样式

        var oBox = document.getElementsByClassName('box')[0]

        console.log(oBox.style.width);
        console.log(oBox.style.height);
        // console.log(oBox.style.background-color);      // 错误写法
        console.log(oBox.style['background-color']);      // 中括号语法
        console.log(oBox.style.backgroundColor);          // 驼峰命名

在这里插入图片描述

2、设置元素样式

  • 语法:元素.style.属性名 = 属性值;
        var oBox = document.getElementsByClassName('box')[0];

        oBox.style.backgroundColor = 'blue';

在这里插入图片描述

(二)获取元素样式

1、非行内

  • 注意: 这种方式获取到的是只读的属性
  • 只读: 只能获取到, 但是不允许修改
    <div class="box"> 我是一个具有样式的div </div>
    <style>
        .box {
            width: 300px;
            height: 300px;
            background-color: pink;
        }
    </style>

2、获取元素样式

语法:window.getComputedStyle(元素).属性名

        var oBox = document.getElementsByClassName('box')[0];

        console.log(window.getComputedStyle(oBox).width);
        console.log(window.getComputedStyle(oBox).backgroundColor);

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/39279.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《人月神话》(The Mythical Man-Month)1 看清问题的本质:如果我们想解决问题,就必须试图先去理解它...

第一章 焦油坑&#xff08;The Tar Pit&#xff09;史前史中&#xff0c;没有比巨兽在焦油坑中垂死挣扎的场面更令人震撼的了。上帝见证着恐龙、猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越是猛烈&#xff0c;焦油纠缠得越紧&#xff0c;没有任何猛兽足够强壮或具有足够的技巧&a…

IDEA注释配置程序员信息(带完整截图步骤,超级详细)

1.配置类注释的程序员信息 效果图 配置截图 模板 &#xff08;可根据需要进行位置调整及个数删除&#xff09; /***BelongsProject: ${PROJECT_NAME}*BelongsPackage: ${PACKAGE_NAME}*ClassName ${NAME}*Author: XUXIAN*CreateTime: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINU…

这可能是最权威、最全面的Go语言编码风格规范了!

每种编程语言除了固定的语法之外&#xff0c;都会有属于自己的地道的(idiomatic)写法。其实&#xff0c;自然语言也不例外&#xff0c;你想&#xff0c;你用心想想是不是这样。语言的设计者们希望开发人员都能编写统一风格的地道的代码&#xff0c;这样不仅代码可读性好&#x…

细分图中的可到达节点 : 常规最短路运用题

题目描述 Tag : 「最短路」、「单源最短路」、「Dijkstra」、「SPFA」 给你一个无向图&#xff08;原始图&#xff09;&#xff0c;图中有 n 个节点&#xff0c;编号从 0 到 n - 1 。你决定将图中的每条边 细分 为一条节点链&#xff0c;每条边之间的新节点数各不相同。 图用…

[前端框架]-VUE(上篇)

Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有项目整合。另一方面&#xff0…

链表经典算法题目

1.回文链表 编写一个函数&#xff0c;检查输入的链表是否是回文的。 示例 1&#xff1a; 输入&#xff1a; 1->2 输出&#xff1a; false 示例 2&#xff1a; 输入&#xff1a; 1->2->2->1 输出&#xff1a; true 笔试的写法 重点是快速code,不考虑空间复杂度…

蒙特卡洛法(Monte Carlo)电动汽车负荷预测matlab程序设计

电动汽车充电负荷的时间分布预测 规模化电动汽车充电负荷在未来某一天随时间特性的分布规律是研究电动汽车发展对配 电网影响以及充电站选址定容问题的前提与基础。电动汽车充电负荷的分布情况与车主的行 为特征有关&#xff0c;不同类型的电动汽车车主出行规律以及充电习惯不…

<Linux系统复习>信号

一、本章重点 1、什么是信号&#xff1f; 2、查看信号列表 3、信号捕捉 4、信号产生的5种方式 5、介绍CoreDump 6、信号处理的方式 7、如何理解信号产生到处理的过程 8、sigpending、sigprocmask、sigaction函数的使用 9、信号处理的时机 10、SIGCHLD信号 11、可重入函数 01 什…

Codeforces Round 836 (Div. 2) A - C

A:SSeeeeiinngg DDoouubbllee 题意&#xff1a;给定一个字符串&#xff0c;每个字符串的字符可以出现两次&#xff0c;要求通过重新排列构造一个回文串。 思路&#xff1a;直接暴力可以&#xff0c;每个字符头部一个尾部一个。 #include<cstdio> #include <iostream…

不使用实体类的情况下接收SQL查询结果、@Autowired注入为null解决

目录 一、场景 二、环境 三、使用 1、数据库表以及数据准备 2、项目导入必要依赖 3、添加连接数据库配置文件 4、编写测试方法 5、执行结果 四、将SQL单独提取出来 2.1 定义查询接口方法 2.2 测试 2.3 测试结果 五、问题记录&#xff1a; Autowired注入失败/null的…

b、B、KB、Kib、MB、MiB、GB、GiB、TB、TiB的区别

1024这个数字&#xff0c;想必计算机行业从业人员应该不会陌生&#xff0c;甚至10月24日还被当做程序员日&#xff0c;如果你问一个程序员1GB等于多少MB,他大概率会不假思索回答:1024。 没错&#xff0c;对于稍微对计算机或者网络有了解的人&#xff0c;一般都认为1024是数据容…

最短路算法 - dijkstra

最短路算法 - dijkstra1. 算法介绍2. 实战2.1 Reachable Nodes In Subdivided Graph3 参考1. 算法介绍 算法目的&#xff1a;求图中某点 s 到其余各点的最短距离 算法步骤&#xff1a; 初始化距离数组 dis 和优先级队列&#xff0c;其中 dis[i] 表示 s 点到当前 i 点的最短距…

树莓派上搭建SVN服务器

目录 一、服务端安装步骤 1.安装svn 2.创建目录 3.创建版本仓库 4.修改配置&#xff08;authz,passwd,svnserve.conf&#xff09; 5.启动服务 二、tortoisSVN客户端安装 三、结束 一、服务端安装步骤 1.安装svn sudo apt-get install subversion 2.创建目录 sudo m…

品RocketMQ 源码,学习并发编程三大神器

这篇文章&#xff0c;笔者结合 RocketMQ 源码&#xff0c;分享并发编程三大神器的相关知识点。 1 CountDownLatch 实现网络同步请求 CountDownLatch 是一个同步工具类&#xff0c;用来协调多个线程之间的同步&#xff0c;它能够使一个线程在等待另外一些线程完成各自工作之后&…

selenium--获取页面信息和截图

获取页面信息namecurrent_urltitlecurrent_window_handlewindow_handlespage_source简单用法—— 判断页面截图1.get_screenshot_as_png2.get_screenshot_as_file获取页面信息 主要方法如下图&#xff1a; 介绍一下常用的方法&#xff1a; name 获取浏览器名字 current_u…

Packet Tracer 实验 - 排除多区域 OSPFv3 故障

地址分配表 设备 接口 IPv6 全局单播地址 IPv6 本地链路地址 默认网关 ISP GigabitEthernet0/0 2001:DB8:C1:1::1/64 FE80::C1 不适用 ASBR GigabitEthernet0/0 2001:DB8:C1:1::2/64 FE80::7 不适用 Serial0/0/0 2001:DB8:A8EA:F0A::1 FE80::7 不适用 S…

如何通过 kubectl 进入 node shell

概述 假设这样一个场景&#xff1a; 生产环境中&#xff0c;Node 都需要通过堡垒机登录&#xff0c;但是 kubectl 是可以直接在个人电脑上登录的。 这种场景下&#xff0c;我想要通过 kubectl 登录到 K8S 集群里的 Node&#xff0c;可以实现吗&#xff1f; 可以的&#xff…

LinkedList与链表

目录 1.链表 2.链表的模拟实现 3.LinkedList的模拟实现 4.LinkedList的使用 4.1 什么是LinkedList 4.2 LinkedList的使用 5.ArrayList和LinkedList的区别 我的GitHub&#xff1a;Powerveil GitHub 我的Gitee&#xff1a;Powercs12 (powercs12) - Gitee.com 皮卡丘每天学…

机器人十大前沿热点领域(2022-2023)

中国电子学会嵌入式系统与机器人分会主任委员、北京航空航天大学机器人研究所名誉所长、中关村智友研究院院长王田苗博士出席大会闭幕式&#xff0c;并现场发布《机器人十大前沿热点领域(2022-2023)》。归纳出2022-2023年机器人十大前沿技术&#xff1b;并结合我国国情和机器人…

自动化项目倍加福测距仪QSM WCS RS485 与西门子S7 200通信

1、程序流程图 2、WCS位置数据处理流程 第一步&#xff1a;设置S7-200的RS485的通讯波特率19.2kbps&#xff0c;通讯格式&#xff08;8&#xff0c;1&#xff0c;E&#xff09;&#xff1b; 第二步&#xff1a;PLC向WCS发送请求码&#xff1a; A0A1为0&#xff0c;表示读码器地…