javaScript中的querySelector()与querySelectorAll()的区别
之前,在JavaScript获取文档元素一文中,我曾介绍了获取文档元素的几种方法,最后一种方法是通过选择器获取文档元素。它的核心思想便是利用querySelector()或querySelectorAll()方法,进而对文档元素进行获取操作,而这两种方法之间的区别,正是本文要讲述的内容。
querySelector()。Document、Element类型均可调用该方法。HTML:
<div id="item" class="className1">
<div class="className1">
</div>
<div class="className2">
</div>
</div>JS1(Document类型调用该方法):
console.log(document.querySelector('.className1')); 输出结果:
<div class="className1">
<div class="className1">
</div>
<div class="className2">
</div>
</div>JS2(Element类型调用该方法):
var elementType = document.getElementById('item'); //得到Element对象
console.log(elementType.querySelector('.className1')); 输出结果:
<div class="className1">
</div>可以看到,当用Document类型调用
querySelector()方法时,会在文档元素范围内查找匹配的元素;而当用Element类型调用querySelector()方法时,只会在这个元素的后代元素中去查找匹配的元素。若不存在匹配的元素,则这两种类型调用该方法时,均返回null。querySelectorAll()。Document、DocumentFragment、Element类型均可调用该方法。HTML:
<div id="item" class="className1">
<div class="className1">
</div>
<div class="className2">
</div>
</div>JS1(Document类型调用该方法):
console.log(document.querySelectorAll('.className1')); 输出结果:
非实时NodeList对象JS2(Element类型调用该方法):
var elementType = document.getElementById('item'); //得到Element对象
console.log(elementType.querySelectorAll('.className1')); 输出结果:
非实时NodeList对象querySelectorAll()方法返回的非实时NodeList对象如下图:
JS1:

可以看到,JS1输出的NodeList对象的长度为2,包含了类选择器
.className1匹配的所有Element对象,而JS2输出的NodeList对象的长度为1,只包含了Element元素的后代匹配该类选择器的Element对象,说明:当用Element类型调用querySelectorAll()方法时,只会在这个元素的后代中去查找匹配的Element对象。若不存在匹配的对象,则这Document和Element这两种类型调用该方法时,均返回一个空的NodeList对象。
javaScript中的querySelector()与querySelectorAll()的区别的更多相关文章
- javaScript中的querySelector和querySelectorAll
querySelector和querySelectorAll是W3C提供的 新的查询接口,其主要特点如下: 1.querySelector只返回匹配的第一个元素,如果没有匹配项,返回null. 2.q ...
- JavaScript中const、var和let区别浅析
在JavaScript中有三种声明变量的方式:var.let.const.下文给大家介绍js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始 ...
- JavaScript中值类型和引用类型的区别
JavaScript的数据类型分为两类:原始类型和对象类型.其中,原始类型包括:数字.字符串和布尔值.此外,JavaScript中还有两个特殊的原始值:null和undefined,它们既不是数字也不 ...
- JavaScript中=、==、===以及!=、!==的区别与联系
JavaScript中=.==.===以及!=.!==的区别与联系 在JavaScript中,“=”代表赋值操作:“==”先转换类型再比较,“===”先判断类型,如果不是同一类型直接为false. ...
- JavaScript中object和Object有什么区别
JavaScript中object和Object有什么区别,为什么用typeof检测对象,返回object,而用instanceof 必须要接Object呢 ————————————————————— ...
- 【前端】强大的javascript原生选择器querySelector 和 querySelectorAll
querySelector 和 querySelectorAll 在传统的 JavaScript 开发中,查找 DOM 往往是开发人员遇到的第一个头疼的问题,原生的 JavaScript 所提供的 D ...
- javascript高级选择器querySelector和querySelectorAll
querySelector 和 querySelectorAll 方法是 W3C Selectors API规范中定义的.他们的作用是根据 CSS 选择器规范,便捷定位文档中指定元素. 目前几乎主流浏 ...
- 深入理解Javascript中构造函数和原型对象的区别
在 Javascript中prototype属性的详解 这篇文章中,详细介绍了构造函数的缺点以及原型(prototype),原型链(prototype chain),构造函数(constructor) ...
- 关于javascript中apply()和call()方法的区别
如果没接触过动态语言,以编译型语言的思维方式去理解javaScript将会有种神奇而怪异的感觉,因为意识上往往不可能的事偏偏就发生了,甚至觉得不可理喻.如果在学JavaScript这自由而变幻无穷的语 ...
随机推荐
- 20165234 《Java程序设计》第九周学习总结
第九周学习总结 教材内容学习 第十三章 Java 网络编程 URL 类 URL 类是 java.net 包中的一个重要的类,使用URL创建对象的应用程序称为客户端程序. 一个 URL 对象通常包含最基 ...
- Table Compression
https://docs.oracle.com/cd/E11882_01/server.112/e40540/tablecls.htm#CNCPT608
- MySql常见命令、函数
⒈常见命令 命令 说明 show databases; 显示数据库列表 use DataBaseName; 打开指定的数据库 show tables; 显示当前打开数据库的表列表 show table ...
- C++写文件
头文件 ofstream -- 向文件写内容 实现代码 #include <vector> #include <string> #include <fstream> ...
- PEP525--异步生成器
[译] PEP 525--异步生成器 PEP原文:https://github.com/python/peps/blob/master/pep-0525.txt 创建日期:2016-07-18 译者 ...
- 设计模式C++学习笔记之八(Adapter适配器模式)
适配器模式,使用之处比较特殊,不属于常规设计模式,主要用于不同系统之间的处理.是将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工 ...
- Mysql安装与配置调优
一.安装apt-get install mysql-server 需要设置账号密码 apt-get isntall mysql-client apt-get libmysqlclient-dev2.s ...
- jqueryui组件progressbar进度条和日期组件datepickers的简单使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- DecimalFormat详解
DecimalFormat继承自NumberFormat,可以使用它将十进制的数以不同形式格式化为字符串形式,可以控制前导和尾随0.前缀.后缀.分组(千).小数分隔符等,如果要更改格式符号(例如小数点 ...
- C#获取当前主机硬件信息
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...