JavaScript获取选择器匹配的所有元素|Document querySelectorAll() 方法

Document 对象参考手册


定义与用法

querySelectorAll() 方法返回文档中匹配指定 CSS 选择器的所有元素,返回 NodeList 对象。

NodeList 对象表示节点的集合。可以通过索引访问,索引值从 0 开始。

提示: 你可以使用 NodeList 对象的 length 属性来获取匹配选择器的元素属性,然后你可以遍历所有元素,从而获取你想要的信息。

更多 CSS 选择器可以参考 CSS 选择器教程CSS 选择器参考手册


语法格式

elementList = document.querySelectorAll(selectors);

  • elementList 是一个静态的 NodeList 类型的对象。
  • selectors 是一个由逗号连接的包含一个或多个 CSS 选择器的字符串。

示例代码

获取文档中 class=”example” 的所有元素:

var x = document.querySelectorAll(".example");

亲自试试


浏览器支持

方法Google ChromeInternet ExplorerFirefoxSafariOpera
querySelectorAll()4.08.03.53.210.0

表格中的数字表示支持该方法的第一个浏览器的版本号。

提示: Internet Explorer 8 支持 CSS2 选择器。 IE9 及更高版本的浏览器已经支持 CSS3 选择器。


参数说明

参数类型描述
CSS 选择器String必须。 指定一个或多个匹配 CSS 选择器的元素。可以通过 id, class, 类型, 属性, 属性值等作为选择器来获取元素。

多个选择器使用逗号(,)分隔。

提示: CSS 选择器更多内容可以参考 CSS 选择器参考手册

返回值

DOM 版本:Level 1 Document Object
返回值:一个 NodeList 对象,表示文档中匹配指定 CSS 选择器的所有元素。 NodeList 是一个静态的 NodeList 类型的对象。如果指定的选择器不合法,则抛出一个 SYNTAX_ERR 异常。

更多示例

获取文档中所有的 <p> 元素, 并为匹配的第一个 <p> 元素 (索引为 0) 设置背景颜色:

// 获取文档中所有的 <p> 元素 
var x = document.querySelectorAll("p"); 

// 设置第一个 <p> 元素的背景颜色 
x[0].style.backgroundColor = "red";

亲自试试


获取文档中所有 class=”example” 的 <p> 元素, 并为匹配的第一个 <p> 元素 (索引为 0) 设置背景颜色:

// 获取文档中所有 class="example" 的 <p> 元素 
var x = document.querySelectorAll("p.example"); 

// 设置 class="example" 的第一个 <p> 元素的背景颜色 
x[0].style.backgroundColor = "red";

亲自试试


计算文档中 class=”example” 的 <p> 元素的数量(使用 NodeList 对象的 length 属性):

var x = document.querySelectorAll(".example").length;

亲自试试


设置文档中所有 class=”example” 元素的背景颜色:

var x = document.querySelectorAll(".example"); 
var i; 
for (i = 0; i < x.length; i++) { 
    x[i].style.backgroundColor = "red"; 
}

亲自试试


设置文档中所有 <p> 元素的背景颜色:

var x = document.querySelectorAll("p"); 
var i; 
for (i = 0; i < x.length; i++) {
    x[i].style.backgroundColor = "red"; 
}

亲自试试


查找文档中共包含 “target” 属性的 <a> 标签,并为其设置边框:

var x = document.querySelectorAll("a[target]"); 
var i; 
for (i = 0; i < x.length; i++) {
    x[i].style.border = "10px solid red"; 
}

亲自试试


查找每个父元素为 <div> 的 <p> 元素,并为其设置背景颜色:

var x = document.querySelectorAll("div > p"); 
var i; 
for (i = 0; i < x.length; i++) { 
    x[i].style.backgroundColor = "red"; 
}

亲自试试


给文档中所有的 <h2>, <div> 和 <span> 元素设置背景颜色:

var x = document.querySelectorAll("h2, div, span"); 
var i; 
for (i = 0; i < x.length; i++) { 
    x[i].style.backgroundColor = "red"; 
}

亲自试试


相关文章

CSS 教程: CSS 选择器

CSS 参考手册: CSS 选择器参考手册

JavaScript 教程: JavaScript HTML DOM 节点列表

HTML DOM 参考手册: document.querySelector()

HTML DOM 参考手册: element.querySelectorAll()


Document 对象参考手册


相关