DOM操作——获取元素的方式

news2024/12/22 18:16:06

关注“大前端私房菜”微信公众号,回复暗号【面试宝典】即可免费领取107页前端面试题。

 DOM-文档对象模型

DOM(Document Object Model):文档对象模型
其实就是操作 html 中的标签的一些能力,或者说是一整套操作文档流的属性和方法的集合。
我们可以操作哪些内容

  • 获取一个元素

  • 移除一个元素

  • 创建一个元素

  • 向页面里面添加一个元素

  • 给元素绑定一些事件

  • 获取元素的属性

  • 给元素添加一些 css 样式

  • ...

DOM 的核心对象就是 document 对象,document 对象是浏览器内置的一个对象,里面存储着专门用来操作元素的各种方法
DOM:页面中的标签,我们通过 js 获取到以后,就把这个对象叫做 DOM 对象


DOM树

  • 整个文档以树状结构表现出来的

  • 整个文档是一个文档节点

  • 每个标签是一个元素节点

  • 包含在元素中的文本是文本节点

  • 每一个属性是一个属性节点

  • 注释属于注释节点

 获取DOM元素

通过 js 代码来获取页面中的标签,获取到以后我们就可以操作这些标签了


获取非常规标签

获取页面的html标签

语法: document.documentElement

var doc = document.documentElement
console.log(doc);

获取页面的head标签
语法: document.head

var doc = document.head
 console.log(doc);

获取页面的body标签
语法:document.body

var doc = document.body
console.log(doc);

获取常规标签
getElementById
getElementById 是通过标签的 id 名称来获取标签的,因为在一个页面中 id 是唯一的,所以获取到的就是一个元素

<body>
  <div id="box"></div>
  <script>
      var box = document.getElementById('box')
      console.log(box) // <div></div>
  </script>
</body>

获取到的就是页面中的那个 id 为 box 的 div 标签

 

getElementsByClassName
getElementsByClassName 是通过标签的 class 名称来获取标签的,因为页面中可能有多个元素的 class 名称一样,所以获取到的是一组元素,哪怕你获取的 class 只有一个,那也是获取一组元素,只不过这一组中只有一个 DOM 元素而已

<body>
  <div calss="box"></div>
  <script>
      var box = document.getElementsByClassName('box')
      console.log(box) // [<div></div>]
    console.log(box[0]) // <div></div>
  </script>
</body>

获取到的是一组元素,是一个长得和数组一样的数据结构,但是不是数组,是 伪数组,这个一组数据也是按照索引排列的,所以我们想要准确的拿到这个 div,需要用索引来获取


getElementsByTagName
getElementsByTagName 是用过标签的 标签 名称来获取标签的,因为页面中可能有多个元素的 标签 名称一样,所以获取到的是一组元素,哪怕真的只有一个这个标签名,那么也是获取一组元素,只不过这一组中只有一个 DOM 元素而已

<body>
  <div></div>
  <script>
      var box = document.getElementsByTagName('div')
      console.log(box) // [<div></div>]
    console.log(box[0]) // <div></div>
  </script>
</body>

和 getElementsByClassName 一样,获取到的是一个长得很像数组的一组元素,必须要用索引才能得到准确的 DOM 元素。


getElementByName
根据 name 属性来获取元素

  • 语法:

    document.getElementsByName('name属性')

  • 返回值:一个伪数组,里面是每一个获取到的元素对象

  • 注意:
    如果页面上有 name 属性对应的元素, 那么有多少获取多少, 放在伪数组内返回
    如果页面上没有 name 属性对应的元素, 那么就是一个空的伪数组

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

</head>

<body>
    <input type="text" name="username" id="">
    <script>
        var eles = document.getElementsByName('username')
        console.log(eles)
    </script>
</body>

</html>

querySelector

querySelector 是按照选择器的方式来获取元素,也就是说,按照我们写 css 的时候的选择器来获取,这个方法只能获取到一个元素,并且是页面中第一个满足条件的元素

console.log(document.querySelector('div')) // 获取页面中的第一个 div 元素
console.log(docuemnt.querySelector('.box')) // 获取页面中第一个有 box 类名的元素
console.log(document.querySelector('#box')) // 获取页面中第一个 id 名为 box 的元素

querySelectorAll
querySelectorAll 是按照选择器的方式来获取元素,这个方法能获取到所有满足条件的元素,以一个伪数组的形式返回

console.log(document.querySelectorAll('div')) // 获取页面中的所有的 div 元素
console.log(docuemnt.querySelectorAll('.box')) // 获取页面中所有有 box 类名的元素

获取到的是一组数据,也是需要用索引来获取到准确的每一个 DOM 元素querySelector和querySelectorAll在IE低版本中不支持 有兼容性问题

 

 

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

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

相关文章

10年内打造量子超级计算机,行吗?

光子盒研究院 在未来十年内&#xff0c;微软打算建造一台量子超级计算机。 本周四&#xff0c;微软制定了一个开发自己的量子超级计算机的战略蓝图。设计它的团队将花费至少10年的研究时间&#xff0c;来建造一台能够每秒进行一百万次可靠量子操作的机器。 微软声称&#xff0c…

C++的access()函数

文章目录 函数功能头文件函数原型参数说明示例 函数功能 确定文件是否存在或者判断读写执行权限&#xff1b;确定文件夹是否存在即&#xff0c;检查某个文件的存取方式&#xff0c;比如说是只读方式、只写方式等。如果指定的存取方式有效&#xff0c;则函数返回0&#xff0c;否…

津津乐道设计模式 - 观察者模式详解(学会察言观色再也不怕女朋友生气了)

&#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Micro麦可乐的博客 &#x1f425;《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程&#xff0c;入门到实战 &#x1f33a;《RabbitMQ》…

Nginx 优化配置及详细注释~转

Nginx 优化配置及详细注释 转https://www.cnblogs.com/taiyonghai/p/5610112.html Nginx 的nginx.conf文件&#xff0c;是调优后的&#xff0c;具体影响已经写清楚注释&#xff0c;可以拿来用&#xff0c;有一些设置无效&#xff0c;我备注上了&#xff0c;不知道是不是版本的…

《kafka 核心技术与实战》课程学习笔记(七)

生产者压缩算法 怎么压缩&#xff1f; 压缩&#xff08;compression&#xff09;秉承了用时间去换空间的经典 trade-off 思想&#xff0c;具体来说就是用 CPU 时间去换磁盘空间或网络 I/O 传输量&#xff0c;希望以较小的 CPU 开销带来更少的磁盘占用或更少的网络 I/O 传输。…

初识mysql数据库之基础操作

目录 一、库的操作 1. 创建数据库 2. 数据库的编码集 2.1 数据库的编码问题 2.2 查看系统默认字符集和校验规则 2.3 创建数据库时指定字符集和校验集 2.4 校验规则对数据库的影响 3. 进入数据库 4. 确认自己当前所处的数据库 5. 修改数据库的编码集 6. 查看创建数据…

FPGA解码MIPI视频 OV5647 2line CSI2 720P分辨率采集 提供工程源码和技术支持

目录 1、前言2、Xilinx官方主推的MIPI解码方案3、本 MIPI CSI2 模块性能及其优越性4、我这里已有的 MIPI 编解码方案5、详细设计方案6、vivado工程介绍7、上板调试验证8、福利&#xff1a;工程代码的获取 1、前言 FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI…

现代民机“飞行管理系统(FMS)”的功能和组成

01 什么是 “飞行管理系统”&#xff1f; 飞行管理系统&#xff08;FMS, Flight Management System&#xff09;&#xff0c;中文简称 “飞管”&#xff0c;是飞机航电系统的重要一员。 FMS 自 20 世纪 70 年代诞生以来&#xff0c;目前已有了跨越式发展。它作为航电关键系统&…

100种思维模型之质量控制理论思维模型-83

质量控制理论思维模型&#xff0c;又叫做戴明环思维模型&#xff0c;即PDCA循环思维模型。 在上世纪50年代&#xff0c;日本的商品和今天中国的商品一样&#xff0c;都是低质低价的代表&#xff0c;后来日本引入了戴明博士的质量控制理论&#xff0c;即PDCA循环理论&#xff0…

浅谈无线测温系统在高压开关柜中的应用

关注acrelzxz&#xff0c;了解更多详情 摘要&#xff1a;高压开关柜是配电系统中重要的组成部分&#xff0c;其主要作用是控制电荷、分配电能和开断电流等&#xff0c;对维持系统的稳定性有一定的保障作用。将无线测温技术应用于高压开关柜&#xff0c;可以实现对其进行实时的…

汽车芯片,竞逐新周期

在过去几年&#xff0c;SoC几乎成了智能汽车行业皇冠上的明珠。汽车芯片从通用型、分散化的单一功能芯片&#xff08;MCU&#xff09;快速转向集成化的多功能SoC&#xff08;System on Chip&#xff09;芯片。 比如&#xff0c;在智能座舱领域&#xff0c;CPU算力用于提高任务处…

国产chatgpt:基于chatGLM微调nlp分类任务

文章目录 一、源码网址1. 硬件设施&#xff1a;2. INT4 量化示例 二、重要的开源社区功能&#xff1a;网址&#xff1a;使用方法&#xff1a;利用方法&#xff1a;对 NLP 工作者的作用&#xff1a;对大模型工程师的用处&#xff1a; 三、重要的开源库四、提示词工程五、进行分类…

优思学院|精益生产管理七大要素

精益生产是一种有效的管理方法&#xff0c;通过优化生产流程和资源利用&#xff0c;帮助企业提高效率、降低成本&#xff0c;并最大程度地满足客户需求。在精益生产中&#xff0c;有七个关键的管理要素&#xff0c;它们分别是人员、资金、方法、机器设备、物料、市场及士气。 1…

避坑指南!一文帮您解决Jmeter录制chrome操作过程中遇到的问题!

Jmeter录制脚本原理 脚本录制时&#xff0c;Jmeter作为代理网关&#xff0c;通过监听某个端口&#xff0c;来捕获监听端口的报文信息&#xff0c;对抓取到的请求信息和响应信息进行转换为对应的行为函数。我们这里以设置chrome代理为例&#xff0c;然后使用jmeter进行脚本录制…

【方法】ZIP分卷压缩文件如何解压?

有时候文件太大&#xff0c;我们在压缩ZIP文件时会使用分卷压缩。 那后期想要解压ZIP分卷文件&#xff0c;要如何解压呢&#xff1f;不清楚的小伙伴&#xff0c;可以跟着小编来看看哦。 在解压ZIP分卷压缩文件之前&#xff0c;要先确保所有的分卷压缩包都存放在一个文件夹里&…

HTML5的新特性有哪些?

HTML5是近年来Web开发标准最巨大的飞跃。与以前的版本不同&#xff0c;HTML5并非仅仅用来表示Web内容&#xff0c;它的新使命是将Web带入一个成熟的应用平台&#xff0c;在HTML5平台上&#xff0c;视频、音频、图像、动画&#xff0c;以及同计算机的交互都被标准化。 HTML5在以…

大厂可能会问的那些思维题和技术点

精选大厂可能会问的那些思维题和技术点 一、题目一1.1、思路&#xff1a;1.2、代码实现 二、题目二三、const 的含义及实现机制, ,比如 : const int i, 是怎么做到 i 只可读的? ?四、到商店里买 200 的商品返还 100 优惠券( ( 可以在本商店代替现金) ) 。请问实际上折扣是多少…

6-js基础-4

JavaScript 基础 - 4 理解封装的意义&#xff0c;能够通过函数的声明实现逻辑的封装&#xff0c;知道对象数据类型的特征&#xff0c;结合数学对象实现简单计算功能。 函数综合案例 函数 理解函数的封装特性&#xff0c;掌握函数的语法规则 函数的基本使用 函数: 是可以被重复…

JavaScript的for循环学不明白怎么办?

&#x1f482; 个人网站:【海拥】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 目录 前言for循环的基本语法…

Apikit 自学日记:自动生成 API 文档

功能入口&#xff1a;API管理应用 / 选中某个项目 / 其他菜单 / 数据源同步&#xff08;API文档自动生成&#xff09; 该功能可通过配置数据源信息&#xff0c;实现基于数据源的API信息自动生成API文档。 当前支持5种数据源&#xff1a;Swagger URL、apiDoc、Github、gitlab、…