getElementById和querySelector的区别

getElementById()querySelector() 都是用于在 HTML 文档中选择元素的方法,但它们有一些区别:

getElementById():

  • 语法: document.getElementById('elementId')
  • 作用: 通过元素的 id 属性选择指定的元素。
  • 返回值: 返回具有指定 id 的唯一元素,如果没有匹配的元素,则返回 null
  • 使用限制: 仅能根据元素的 id 属性选择元素,因为在 HTML 文档中,id 属性是唯一的,每个元素都应该有唯一的 id。返回的是一个单一的元素对象。

querySelector():

  • 语法: document.querySelector('selector')
  • 作用: 使用 CSS 选择器语法选择元素,可以选择类似 CSS 选择器的任何元素。
  • 返回值: 返回匹配指定 CSS 选择器的第一个元素,如果没有匹配的元素,则返回 null
  • 使用限制: 可以使用更灵活的选择器语法,如类名(.class)、标签名(tag)、属性选择器([attr=value])等,也支持复合选择器。返回的是一个单一的元素对象。

主要区别:

  1. 选择器语法不同: getElementById() 使用的是纯粹的 id 名称,而 querySelector() 使用的是 CSS 选择器语法,更加灵活,可以选择更多种类的元素。
  2. 返回值不同: getElementById() 返回一个具有指定 id 的唯一元素,而 querySelector() 返回匹配的第一个元素,如果有多个匹配,则仅返回第一个。
<!DOCTYPE html>
<html>
<head>
  <title>getElementById 和 querySelector 示例</title>
</head>
<body>
  <div id="myDiv">
    <p class="paragraph">第一个段落</p>
    <p class="paragraph">第二个段落</p>
    <p class="paragraph">第三个段落</p>
  </div>

  <script>
    // 使用 getElementById() 获取具有 id 为 'myDiv' 的元素
    const myDivElement = document.getElementById('myDiv');
    console.log('通过 getElementById 获取的元素:', myDivElement);

    // 使用 querySelector() 获取第一个具有类名为 'paragraph' 的段落元素
    const firstParagraph = document.querySelector('.paragraph');
    console.log('通过 querySelector 获取的元素:', firstParagraph);
  </script>
</body>
</html>
  1. HTML 结构:

    • 有一个包含三个段落元素 <p><div> 元素。
    • 每个段落都有一个类名为 'paragraph'。
  2. JavaScript 部分:

    • document.getElementById('myDiv') 选择了具有 id 为 'myDiv' 的 <div> 元素,并将其存储在 myDivElement 变量中。
    • document.querySelector('.paragraph') 选择了文档中第一个具有类名为 'paragraph' 的元素,并将其存储在 firstParagraph 变量中。

在浏览器中打开这个 HTML 文件,在控制台中通过 getElementById()querySelector() 选择到的元素。getElementById() 选择了具有指定 id 的元素,而 querySelector() 则选择了具有指定类名的第一个元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值