querySelector & querySelectorAll --->像CSS一样选择DOM

在传统的 JavaScript 开发中,查找 DOM 往往是开发人员遇到的第一个头疼的问题,原生的 JavaScript 所提供的 DOM 选择方法并不多,仅仅局限于通过 tag, name, id 等方式来查找,这显然是远远不够的,如果想要进行更为精确的选择不得不使用看起来非常繁琐的正则表达式,或者使用某个库。事实上,现在所有的浏览器厂商都提供了 querySelector 和 querySelectorAll 这两个方法的支持,甚至就连微软也派出了 IE 8 作为支持这一特性的代表,querySelector 和 querySelectorAll 作为查找 DOM 的又一途径,极大地方便了开发者,使用它们,你可以像使用 CSS 选择器一样快速地查找到你需要的节点。

querySelector 和 querySelectorAll 的使用非常的简单,就像标题说到的一样,它和 CSS 的写法完全一样,对于前端开发人员来说,这是难度几乎为零的一次学习。假如我们有一个 id 为 test 的 DIV,为了获取到这个元素,你也许会像下面这样:

Js代码

  1. document.getElementByIdx_x("test");

现在我们来试试使用新方法来获取这个 DIV

Js代码

  1. document.querySelector("#test");
  2. document.querySelectorAll("#test")[0];

感觉区别不大是吧,但如果是稍微复杂点的情况,原始的方法将变得非常麻烦,这时候 querySelector 和 querySelectorAll 的优势就发挥出来了。比如接下来这个例子,我们将在 document 中选取 class 为 test 的 div 的子元素 p 的第一个子元素,当然这很拗口,但是用本文的新方法来选择这个元素,比用言语来描述它还要简单。

Js代码

  1. document.querySelector("div.test>p:first-child");
  2. document.querySelectorAll("div.test>p:first-child")[0];

现在应该对于 querySelector、querySelectorAll 方法中的参数已经非常明白了,是的,它接收的参数和 CSS 选择器完全一致。querySelector 和 querySelectorAll 的区别在于 querySelector 用来获取一个元素,而 querySelectorAll 可以获取多个元素。querySelector 将返回匹配到的第一个元素,如果没有匹配的元素则返回 Null。querySelectorAll 返回一个包含匹配到的元素的数组,如果没有匹配的元素则返回的数组为空 。在本文最后一个例子中,我们使用 querySelectorAll 给所有 class 为 emphasis 的元素加粗显示。

Js代码

  1. var emphasisText = document.querySelectorAll(".emphasis");
  2. for( var i = 0 , j = emphasisText.length ; i < j ; i++ ){
  3. emphasisText[i].style.fontWeight = "bold";
  4. }

物流配货网http://wlphw.com/  QQ在线:471226865

querySelector querySelectorAll相关推荐

  1. JavaScript学习笔记:JavaScript获取元素:id,标签名,类名,querySelector,querySelectorall,获取body,html

    1.根据ID获取元素 ● 语法:document.getElementById(id) ● 作用:根据ID获取元素对象 ● 参数:id值,区分大小写的字符串 ● 返回值:元素对象 或 null 案例代 ...

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

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

  3. JS显示document里所有的成员

    <script> for (x in window.document) document.write(x+"</br>"); </script> ...

  4. js DOM Element属性和方法整理

    js DOM Element属性和方法整理 节点操作,属性 1. childNodes.children 这两个属性获取到的子节点会根据浏览器的不同而不同的,所以一定要判断下nodeType是否为1. ...

  5. JavaScript学习笔记(3)

    文章目录 Web APIs 什么是DOM? DOM树 如何获取网页页面元素? 根据id获取元素 getElementById 根据标签名获取元素 getElementsByTagName 根据类名获取 ...

  6. html dom节点源码,JavaScript操作HTML DOM节点的基础教程

    因为 DOM 的存在,这使我们可以通过 JavaScript 来获取.创建.修改.或删除节点. NOTE:下面提供的例子中的 element 均为元素节点. 获取节点 父子关系 element.par ...

  7. JavaScript基础11-day13【正则表达式(量词、语法、转义字符、元字符)、DOM(节点、事件)、图片切换】

    学习地址: 谷粒学院--尚硅谷 哔哩哔哩网站--尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通) JavaScript基础.高级学习笔记汇总表[尚硅谷最新版Ja ...

  8. jQuery 2.0.3 源码分析Sizzle引擎 - 解析原理

    声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢! 先来回答博友的提问: 如何解析 div > p + div.aaron input[type="checkb ...

  9. 系统带你学习 WebAPIs 第二讲

    Web APIs 本篇学习目标: 能够说出排他操作的一般实现步骤 能够使用html5中的dataset方式操作自定义属性 能够根据提示完成百度换肤的案例 能够根据提示完成全选案例 能够根据提示完成ta ...

最新文章

  1. 浏览器刷新再次升级!不同浏览器窗口
  2. [Jsoi2016]最佳团体 BZOJ4753 01分数规划+树形背包/dfs序
  3. element ui点击按钮弹出款_前端猿应该知道的十大最流行的前端UI框架
  4. ubuntu 14.04 安装qq 2015
  5. php串行化,PHP串行化与JSON
  6. 战痕————道具系统介绍
  7. Codeforces Round #699 (Div. 2) 题解
  8. python做词云做文本处理_Python生成词云的制作
  9. matlab 转 python_985工科硕士自学转程序员经验
  10. pandas 索引去重_Pandas 同元素多列去重的实例
  11. Sql: 去除字符串中的相同的字符串函數
  12. 关于HTML中onSubmit属性的触发时机
  13. 计算机ppt基础知识题库,计算机二级考试MSOffice考试题库ppt操作题附答案.pdf
  14. AE 动效工作流技巧 —— 减少 Bodymovin 导出的 JSON 大小并提升性能(三)
  15. 利用python修改小米运动数据,整个朋友圈都感觉太夸张了
  16. 天刀 服务器状态,天刀实用技巧_天刀各种游戏小技巧_玩游戏网
  17. TVS二极管和稳压二极管的区别
  18. scons与Madagascar!
  19. 腾讯云CPU处理器Intel Ice Lake主频2.7GHz睿频3.3GHz)
  20. 信息学奥赛对大学计算机专业,关于信息学竞赛学习的几大误区,你必须得知道!...

热门文章

  1. 交换链表的奇数节点和偶数节点
  2. AOP埋点从入门到放弃(二)
  3. C# 真正能发邮件的源码
  4. Oracle 赋权和回收权限的生效时间
  5. mysql中的多行查询结果合并成一个
  6. jQuery里面的datepicker日期控件默认是显示英文的,如何显示中文或其他语言呢?...
  7. Windows7下最新Android开发环境搭建(JDK1.7 + Eclipse Indigo(3.7) + SDK-r12 + ADT-12)
  8. C++_代码重用3-私有继承
  9. JavaScript奇技淫巧44招(2)
  10. (38)Spring Boot分布式Session状态保存Redis【从零开始学Spring Boot】