当前位置: 首页 > news >正文

常见的获取dom元素的方法

获取 DOM 元素是前端开发中非常常见的操作。以下是几种常用的方法来获取 DOM 元素,以及它们的适用场景和示例:

1. getElementById

用于获取具有指定 id 属性的元素。

示例
let element = document.getElementById('myId');

2. getElementsByClassName

用于获取具有指定 class 名的所有元素,返回一个动态的 HTMLCollection

示例
let elements = document.getElementsByClassName('myClass');

3. getElementsByTagName

用于获取具有指定标签名的所有元素,返回一个动态的 HTMLCollection

示例
let elements = document.getElementsByTagName('div');

4. querySelector

用于获取匹配指定 CSS 选择器的第一个元素。

示例
let element = document.querySelector('.myClass');

5. querySelectorAll

用于获取匹配指定 CSS 选择器的所有元素,返回一个 NodeList

示例
let elements = document.querySelectorAll('.myClass');

6. getElementsByName

用于获取具有指定 name 属性的所有元素,返回一个 NodeList

示例
let elements = document.getElementsByName('myName');

详细示例

以下是一个包含所有上述方法的详细示例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Get DOM Elements Example</title>
</head>
<body><div id="myId">Element with ID</div><div class="myClass">First Element with Class</div><div class="myClass">Second Element with Class</div><p>Paragraph</p><p class="myClass">Paragraph with Class</p><input type="text" name="myName" value="Input Element"><script>// 获取具有指定 ID 的元素let elementById = document.getElementById('myId');console.log(elementById); // 输出: <div id="myId">Element with ID</div>// 获取具有指定类名的所有元素let elementsByClassName = document.getElementsByClassName('myClass');console.log(elementsByClassName); // 输出: HTMLCollection(3) [div.myClass, div.myClass, p.myClass]// 获取具有指定标签名的所有元素let elementsByTagName = document.getElementsByTagName('p');console.log(elementsByTagName); // 输出: HTMLCollection(2) [p, p.myClass]// 获取匹配指定选择器的第一个元素let elementByQuerySelector = document.querySelector('.myClass');console.log(elementByQuerySelector); // 输出: <div class="myClass">First Element with Class</div>// 获取匹配指定选择器的所有元素let elementsByQuerySelectorAll = document.querySelectorAll('.myClass');console.log(elementsByQuerySelectorAll); // 输出: NodeList(3) [div.myClass, div.myClass, p.myClass]// 获取具有指定名称的所有元素let elementsByName = document.getElementsByName('myName');console.log(elementsByName); // 输出: NodeList [input[name="myName"]]</script>
</body>
</html>

使用建议

  • getElementById: 适用于获取单个元素时,ID 在文档中应该是唯一的。
  • getElementsByClassNamegetElementsByTagName: 返回的 HTMLCollection 是实时更新的,适合需要动态响应 DOM 变化的情况。
  • querySelectorquerySelectorAll: 支持复杂的 CSS 选择器,适合需要精确匹配的情况。querySelectorAll 返回的 NodeList 是静态的,不会动态更新。
  • getElementsByName: 常用于表单元素,name 属性在表单中具有特殊意义。
http://www.lryc.cn/news/345126.html

相关文章:

  • 走进CHEN MEI HUA的设计哲学:书写东方女性力量与态度的时尚篇章
  • ESrally单机向量检索性能测试全流程
  • 小红书释放被封手机号 无限注册
  • Docker快速启动清单
  • 京东手势验证码-YOLO姿态识别+Bézier curve轨迹拟合
  • 亚马逊是如何铺设多个IP账号实现销量大卖的?
  • linux学习笔记——硬盘原理以及linux中的sector与block
  • 【OceanBase诊断调优】—— 磁盘性能问题导致卡合并和磁盘写入拒绝排查
  • 使用unreal engine5.3.2创建c++第一人称游戏
  • 关系型数据库的一种自动测评方式
  • 速盾:服务器cdn加速的具体实现方式?
  • 【QT教程】QT6音视频处理权威指南 QT音视频
  • cmd输入mysql -u root -p无法启动
  • word 毕业论文格式调整
  • 移动UI瓷片区能有多漂亮?要多漂亮就多漂亮。
  • SpringCloud Config 分布式配置中心
  • Java入门基础学习笔记2——JDK的选择下载安装
  • 基于FPGA的去雾算法
  • 专题六_模拟(2)
  • [qnx] 通过zcu104 SD卡更新qnx镜像的步骤
  • 论文AIGC检测让毕业生头疼,如何有效降低AI查重率!
  • FineBI学习:K线图
  • Chronos:学习时间序列的大语言模型(代码解析)
  • 云南区块链商户平台优化开发
  • 深圳六西格玛培训:引领职场“薪”途无限
  • Spark云计算平台Databricks使用,创建workspace和Compute计算集群(Spark集群)
  • 银河麒麟服务器系统audit服务组件升级、进程彻底关闭介绍
  • 设计模式——装饰者模式(Decorator)
  • 力扣:406. 根据身高重建队列
  • Docker 怎么将映射出的路径设置为非root用户权限