常见的获取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 属性在表单中具有特殊意义。
  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Meta.Qing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值