HTML DOM querySelectorAll() 方法
实例
获取文档中所有 class="example" 的 <div> 元素, 并为匹配的第一个 <div> 元素 (索引为 0) 设置背景颜色:
// 用 id="myDIV"(一个 div)获取元素,然后用 class="example" 获取 div 内的所有元素
var x = document.getElementById("myDIV").querySelectorAll(".example");
// 设置div中第一个带有 class="example"(索引0)的元素的背景颜色
x[0].style.backgroundColor = "red";
亲自试一试 »
页面下方有更多实例。
定义和用法
querySelectorAll() 方法返回文档中匹配指定 CSS 选择器的所有元素,返回 NodeList 对象。
NodeList 对象表示节点的集合。可以通过索引访问,索引值从 0 开始。
提示: 你可以使用 NodeList 对象的 length 属性来获取匹配选择器的元素属性,然后你可以遍历所有元素,从而获取你想要的信息。
更多 CSS 选择器可以参考CSS 选择器教程 ,CSS 选择器参考手册。
浏览器支持
表中的数字指定了完全支持该方法的第一个浏览器版本。
方法 | |||||
---|---|---|---|---|---|
querySelectorAll() | 4.0 | 9.0 | 3.5 | 3.2 | 10.0 |
注释: Internet Explorer 8 支持 CSS2 选择器。 IE9 及更高版本的浏览器已经支持 CSS3 选择器。
语法
element.querySelectorAll(CSS selectors)
参数值
参数 | 类型 | 描述 |
---|---|---|
CSS selectors | String | 必需。 指定一个或多个匹配 CSS 选择器的元素。可以通过 id, class, 类型, 属性, 属性值等作为选择器来获取元素。
多个选择器使用逗号(,)分隔。 提示: CSS 选择器更多内容可以参考 CSS 选择器参考手册。 |
技术细节
DOM 版本: | Selectors Level 1 Document Object |
---|---|
返回值: | 一个 NodeList 对象,表示文档中匹配指定 CSS 选择器的所有元素。 NodeList 是一个静态的 NodeList 类型的对象。 注释: 如果指定的选择器不合法,则抛出一个 SYNTAX_ERR 异常。 |
更多实例
实例
获取文档中所有的 <p> 元素, 并为匹配的第一个 <p> 元素 (索引为 0) 设置背景颜色:
// 获取带有id="myDIV"的元素(一个div),然后获取div里面的所有p个元素
var x = document.getElementById("myDIV").querySelectorAll("p");
// 设置div中第一个<p>元素(索引0)的背景色
x[0].style.backgroundColor = "red";
亲自试一试 »
实例
获取文档中所有 class="example" 的 <div> 元素中的 <p> 元素, 并为匹配的第一个 <p> 元素 (索引为 0) 设置背景颜色:
// 获取id="myDIV"的元素(一个div),然后获取div内class="example"的所有p个元素
var x = document.getElementById("myDIV").querySelectorAll("p.example");
// 设置div中第一个class="example"(索引为0)的<p>元素的背景色
x[0].style.backgroundColor = "red";
亲自试一试 »
实例
计算文档中 class="example" 的 <div> 元素的数量(使用 NodeList 对象的 length 属性):
/* 获取id="myDIV"的元素(一个div),然后获取div内class="example"的所有p个元素,返回找到的元素个数 */
var x = document.getElementById("myDIV").querySelectorAll(".example").length;
亲自试一试 »
实例
设置文档中所有 class="example" 元素的背景颜色:
// 获取id="myDIV"的元素(一个div),然后获取div内class="example"的所有元素
var x = document.getElementById("myDIV").querySelectorAll(".example");
// 创建一个for循环并设置div中所有class="example"元素的背景色
var i;
for (i = 0; i < x.length; i++) {
x[i].style.backgroundColor = "red";
}
亲自试一试 »
实例
设置文档中所有 <p> 元素的背景颜色:
// 获取带有id="myDIV"的元素(一个div),然后获取div里面的所有p个元素
var x = document.getElementById("myDIV").querySelectorAll("p");
// 创建一个for循环并设置div中所有p元素的背景色
var i;
for (i = 0; i < x.length; i++) {
x[i].style.backgroundColor = "red";
}
亲自试一试 »
实例
查找文档中共包含 "target" 属性的 <a> 标签,并为其设置边框:
// 获取带有id="myDIV"的元素(一个div),然后在div里面获取所有带有"target"属性的<a>元素
var x = document.getElementById("myDIV").querySelectorAll("a[target]");
// 创建一个for循环并设置所有<a>元素的边框与div中的target属性
var i;
for (i = 0; i < x.length; i++) {
x[i].style.border = "10px solid red";
}
亲自试一试 »
实例
给文档中所有的 <h2>, <div> 和 <span> 元素设置背景颜色:
// 获取id="myDIV"(一个div)的元素,然后获取<div>里面的所有<h2>, <div> 和 <span>元素
var x = document.getElementById("myDIV").querySelectorAll("h2, div, span");
// 创建一个for循环并设置<div>中所有<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 Node List
HTML DOM 参考手册: element.querySelector()
HTML DOM 参考手册: document.querySelectorAll()