getElementById与querySelector的区别

首先对获取元素的几个方法有所了解

  • getElementById():返回对拥有指定id的第一个对象的引用
  • getElementsByName():返回带有指定名称name的对象的集合。返回的是元素的数组,而不是一个元素(由于name不唯一)
  • getElementsByTagName():返回带有指定标签名的对象集合
  • querySelector():返回文档中匹配指定CSS选择器第一个元素
  • querySelectorAll() :返回文档中匹配的CSS选择器的所有元素节点列表(h5新增)
document.querySelector("p")      //获取文档中第一个 <p> 元素:
document.querySelector("#demo")     //获取文档中id="demo"的元素
document.querySelector(".example");   //获取文档中第一个 class="example" 的元素
document.querySelector("p.example");    //获取文档中 class="example"的第一个 <p> 元素
......
还可以写CSS的并集选择器、复合选择器等等。按照css规范来实现。

要知道的是querySelector()方法仅仅返回匹配指定选择器的第一个元素。你可以使用querySelectorAll() 方法替代去返回匹配指定选择器的所有的元素。返回的是节点列表NodeList 对象,可以通过索引访问,索引值从0开始。

例如:

// 获取文档中所有的 <p> 元素
var x = document.querySelectorAll("p");
// 通过索引访问,设置第一个 <p> 元素的背景颜色
x[0].style.backgroundColor = "red";

由于querySelector是按css规范来实现的,所以它传入的字符串中第一个字符不能是数字
前三种getxxxByxxx获取的是动态集合,而querySelector获取的是静态集合。
简单的说就是,动态就是选出的元素会随文档改变,静态的不会,取出来之后就和文档的改变无关了。

getElementById性能更好,而querySelector按照CSS选择器规范,当在多级查找时,更为方便。

getElementById与querySelector的区别相关推荐

  1. getElementByID() getElementsByName() getElementsByTagName()的区别 .

    getElementByID() getElementsByName() getElementsByTagName()的区别 Web标准下可以通过getElementById(), getElemen ...

  2. getElementById和getElementByTagName的区别

    在原生js中获取元素的方法有很多,那么今天就重点说一下getElementById和getElementByTagName的区别: 1.getElementById前面必须是document:而get ...

  3. getElementById和querySelector区别

    1.常见的获取元素的方法有3种,分别是通过元素ID document.getElementById('idName');.通过标签名字document.getElementsByTagName(tag ...

  4. document.getElementById与getElementsByName的区别(注意后者多个S)

    1:id   就像身分证号,是唯一的,   name   就像姓名一样可以同名 2:一个元素定义了   id   ,引用该元素时直接用   id   属性,而   name   通常用在   form ...

  5. javascript getElementByID,getElementsByName,getElementsByTagName的区别

    getElementByID,getElementsByName,getElementsByTagName区别 注意:方法区分大小写! 以人来举例说明,人有能标识身份的身份证,有姓名,有类别(大人.小 ...

  6. document.getElementById与getElementByName的区别

    document.getElementById( "id_Number ")   得到的是单个元素 document.getElementsByName( "name & ...

  7. getElementById 和 getElementByName的区别

    getElementById   根据HTML元素指定的ID,获得唯一的一个HTML元素.如访问DIV层对像.图片Img对像等! getElementByName  根据HTML元素指定Name,获得 ...

  8. getElementById()和$(#id)的区别

    转自:https://blog.csdn.net/weixin_41989775/article/details/81063161 1.getElementById()获取的是js对象,$(" ...

  9. 如何使用JavaScript更改元素的类?

    如何使用JavaScript更改HTML元素的类以响应onclick事件? #1楼 对以前的正则表达式的一些小注释和调整: 如果班级列表中的班级名称不止一次,您将希望在全局范围内执行此操作. 而且,您 ...

最新文章

  1. 【分块】#6283. 数列分块入门 7(区间乘法、区间加法、单点查询)
  2. java 车站分级问题_【NOIP2013 普及组】车站分级
  3. ORACLE EXPDP命令使用详细【转】
  4. Oracle数据库更新时间的SQL语句
  5. 获取网页上数据(图片、文字、视频)-b
  6. python中input的功能是什么_python中的input的功能是什么
  7. mysql opendrowset,java,mysql、jdbc
  8. 移动管理进步显著 企业仍然面临风险
  9. yii2在linux下面无法启用gii
  10. 在https上面使用ws不加密_ASP.NET Core 3.1 中使用JWT认证
  11. 15.supervisor 安装
  12. Linux开发环境——tftp服务器的搭建
  13. 自举电容的工作原理-3句话总结
  14. 信用卡上了“灰名单”怎么办?如何解除?
  15. ORACLE 根据分组排序产生序列号
  16. 《构建之法》读书笔记——第1章 概论
  17. 转屏动画 - 安卓R
  18. 低频数字相位测量仪的介绍
  19. 计算机组成原理(二) 计算机算术
  20. 几道简单的c语言编程题(1)

热门文章

  1. Power bi 超市经典案例之销售分析(三)
  2. 信息技术基础概念介绍
  3. 日语语法(六):连体词
  4. C语言学习——朱有鹏老师的课——天山老妖S的博文
  5. 《游戏设计艺术(第二版)》第七章个人学习
  6. js websocket技术总结
  7. 语义分割Backbone学习
  8. MySql在某个时间范围内查找
  9. 英语基础-名词性从句
  10. 重磅发布:2022软科世界一流学科排名