其实关于querySelector和querySelectorAll的介绍说明很多。

在此主要是做个记录。

一开始很多人都会拿jquery的选择器来跟这两个api做对比(我也是),比较异同本来没事,但却使一些同学对这两个api在浏览器中的实现产生了误解,特别是再dom element上调用此api时。

下面是我的jsFiddle示例,我就以此展开说明:

误解就在于对$('inner').querySelectorAll('#main h4.inside')的实现理解,不少人一开始几乎都认为是直接从div[id='inner']的孩子中进行查找(我也是),这个#main有点碍眼。实际上它还是根据selector string从整个document上查找,再返回属于div[id='inner']的子节点。很多人会疑惑,那么为什么不按照直接按父节点找子节点的方式来实现呢?就像elem.getElementsByTagName,我的想法是灵活selector string吧。

querySelector只返回匹配的第一个元素,如果没有匹配项,返回null。

querySelectorAll返回匹配的元素集合,如果没有匹配项,返回空的nodelist(节点数组)。

并且返回的结果是静态的,之后对document结构的改变不会影响到之前取到的结果。

目前IE8+,ff,chrome都支持此api(IE8中的selector string只支持css2.1的)。

转载于:https://www.cnblogs.com/AndyWithPassion/archive/2011/10/08/javascript_querySelector_querySelectorAll.html

javascript之querySelector和querySelectorAll相关推荐

  1. javascript之 原生document.querySelector和querySelectorAll方法

    querySelector和querySelectorAll是W3C提供的 新的查询接口,其主要特点如下: 1.querySelector只返回匹配的第一个元素,如果没有匹配项,返回null.  2. ...

  2. 强大的原生DOM选择器querySelector和querySelectorAll

    在传统的 JavaScript 开发中,查找 DOM 往往是开发人员遇到的第一个头疼的问题,原生的 JavaScript 所提供的 DOM 选择方法并不多,仅仅局限于通过 tag, name, id ...

  3. 原生DOM选择器querySelector和querySelectorAll

    在传统的 JavaScript 开发中,查找 DOM 往往是开发人员遇到的第一个头疼的问题,原生的 JavaScript 所提供的 DOM 选择方法并不多,仅仅局限于通过 tag, name, id ...

  4. 原生的强大DOM选择器querySelector - querySelector和querySelectorAll

    在传统的 JavaScript 开发中,查找 DOM 往往是开发人员遇到的第一个头疼的问题,原生的 JavaScript 所提供的 DOM 选择方法并不多,仅仅局限于通过 tag, name, id ...

  5. JavaScript中 querySelector 与 getElementById 方法的区别

    1. 概述 在看代码的时候发现基本上都是用 querySelector() 和 querySelectorAll() 来获取元素,疑惑为什么不用 getElementById(). 可能因为自己没用过 ...

  6. document.querySelector和querySelectorAll方法

    querySelector和querySelectorAll是W3C提供的 新的查询接口,其主要特点如下: 1.querySelector只返回匹配的第一个元素,如果没有匹配项,返回null.  2. ...

  7. 新增的querySelector、querySelectorAll测试

    从IE9开始DOM开始支持支持CSS的选择器了,DOM提供了两个接口 querySelector 得到一个DOM querySelectorAll 得到一组DOM 一个个的解释这些选择器也没有必要,我 ...

  8. 再谈querySelector和querySelectorAll

    先按W3C的规范来说这两个方法应该返回的内容吧: querySelector: return the first matching Element node within the node's sub ...

  9. JavaScript基础教程之querySelectorAll( )方法遇到的问题

    Write By Monkeyfly 以下内容均为原创,如需转载请注明出处. 一.前提 最近这两天一直在学习JavaScript的事件委托(或称事件代理),用了两天的时间看完了这篇<js中的事件 ...

  10. 你不需要jQuery(四)

    jQuery是个好东西.它诞生于IE6在互联网称霸的那个时代.jQuery的存在让我们的代码能很好的兼容各种平台. 然而,到如今,浏览器技术已经取得了巨大的进步.我们可以自由的使用所有最新众多ES5/ ...

最新文章

  1. 在 Delphi 下使用 DirectSound (12): 测试失真效果器 IDirectSoundFXDistortion8
  2. DDD 领域驱动设计-如何 DDD?
  3. 程序员面试题精选100题(07)-翻转句子中单词的顺序[算法]
  4. easyui动态显示和隐藏表头
  5. java语言中json转换,JSON字符串和JAVA语言对象的相互转换教程
  6. 国家建筑标准设计图集
  7. FreeRTOS可视化追踪软件 —— 破解Tracealyzer 4.2.12
  8. TDDL分布式数据库
  9. linux开发工具少_从设计到开发,我必不可少的10种工具
  10. 最后的最后的一场考试
  11. linux命令报错,在Linux执行命令报错”Arg list too long”的原因分析 – 运维派
  12. [css选择器] 后代选择器
  13. studio 不能输入中文
  14. MySQL—关联查询与子查询(从小白到大牛)
  15. Delphi Thread 线程2
  16. 12月15-16日:跟着猫叔写代码学习api接口开发小程序
  17. 【小说】TOP① 《江山美人志》作者:瑞根(精校全本)
  18. Linux虐我千百遍,我待linux如初恋
  19. 【转】Linux 里有/lib和/usr/lib,这两个目录下的库文件有什么区别吗?如果没区别为什么又要分开放呢
  20. java spring 事务传播_实战Spring事务传播性与隔离性

热门文章

  1. JavaScript 中的 this 到底指向谁?
  2. getWriter() has already been called for this response
  3. 小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_10、常用json框架介绍和Jackson返回结果处理...
  4. 小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_7、开发必备工具PostMan接口工具介绍和使用...
  5. 阶段3 2.Spring_06.Spring的新注解_3 AnnotationConfigApplicationContext的使用
  6. android权限名及其用途
  7. Linux NFS 服务部署
  8. 如何将位图格式图片文件(.bmp)生成geotiff格式图片?
  9. windows核心编程第二章阅读
  10. 测试 jdbc 中连接关闭的时机