Document.querySelector 教程展示了如何使用querySelector
在 JavaScript 中选择 HTML 元素。
文档查询选择器
Document 的querySelector
方法返回文档中与指定选择器或一组选择器匹配的第一个元素。如果未找到匹配项,则返回 null。
querySelectorAll
返回一个静态 NodeList,表示与指定选择器组匹配的文档元素列表。
Document.querySelector 示例
下面的例子演示了querySelector
和querySelectorAll
方法的用法。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document.querySelector</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.3.1/components/button.min.css"> <style> body { margin: 3em } .selected { background-color: #eee } .container { display: grid; grid-template-columns: 100px 100px 100px 100px 100px; grid-template-rows: 50px; grid-column-gap:5px; margin-bottom: 1em; } div>div { border: 1px solid #ccc; } </style> </head> <body> <div class="container"> <div></div> <div></div> <div></div> <div></div> <div></div> </div> <button id="first" type="submit" class="ui grey button">First</button> <button id="all" type="submit" class="ui brown button">All</button> <button id="clear" type="submit" class="ui brown button">Clear</button> <script src="main.js"></script> </body> </html>
在文档中,我们显示了五个带边框的 div 元素。我们有三个按钮。每个按钮都会改变 div 的外观。
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.3.1/components/button.min.css">
我们使用语义 UI 设计文档样式。
.selected { background-color: #eee }
选定的 div 具有灰色背景颜色。
.container { display: grid; grid-template-columns: 100px 100px 100px 100px 100px; grid-template-rows: 50px; grid-column-gap:5px; margin-bottom: 1em; }
使用 CSS 网格布局系统,div 在一行中显示。
div>div { border: 1px solid #ccc; }
容器 div 中的 div 有灰色边框。
<div class="container"> <div></div> <div></div> <div></div> <div></div> <div></div> </div>
父容器div中放置了五个div。
<button id="first" type="submit" class="ui grey button">First</button> <button id="all" type="submit" class="ui brown button">All</button> <button id="clear" type="submit" class="ui brown button">Clear</button>
我们在文档中有三个按钮。 First 按钮更改第一个内部 div 的背景颜色。 All 按钮更改所有内部 div。Clear 按钮清除 div 的背景。这些按钮具有语义 UI 样式。
<script src="main.js"></script>
JavaScript 代码放在main.js
文件中。
document.getElementById("first").onclick = (e) => { let tag = document.querySelector(".container div:first-child"); tag.className = "selected"; }; document.getElementById("all").onclick = (e) => { let tags = document.querySelectorAll(".container div"); tags.forEach( tag => { tag.className = "selected"; }); }; document.getElementById("clear").onclick = (e) => { let tags = document.querySelectorAll(".container div"); tags.forEach( tag => { tag.classList.remove("selected"); }); };
在main.js
文件中,我们实现了按钮的功能。
document.getElementById("first").onclick = (e) => {
使用onclick
属性将点击监听器添加到按钮。使用getElementById
选择按钮。
let tag = document.querySelector(".container div:first-child");
使用querySelector
方法,我们选择容器 div 中的第一个内部 div。
tag.className = "selected";
我们将 selected
类添加到所选标签。
let tags = document.querySelectorAll(".container div");
使用querySelectorAll
我们选择所有内部div。
tags.forEach( tag => { tag.className = "selected"; });
在 forEach
循环中,我们遍历列表并将类附加到每个元素。
在屏幕截图中,我们可以看到第一个 div 的背景颜色已更改。
在本文中,我们使用了querySelector
和querySelectorAll
方法。
列出所有 JavaScript 教程。