querySelector()

1. 基本语法

复制代码
document.querySelector("选择器")

比如:

复制代码
let box = document.querySelector("#box");

意思:

去整个网页(document)里面,找 id 为 box 的元素。


一、先回顾 CSS 选择器

你学 CSS 的时候应该见过:

1. id选择器

CSS:

复制代码
#box {

}

意思:

找到:

复制代码
<div id="box"></div>

2. class选择器

CSS:

复制代码
.box {

}

意思:

找到:

复制代码
<div class="box"></div>

3. 标签选择器

CSS:

复制代码
div {

}

意思:

找到:

复制代码
<div></div>

querySelector() 就是直接使用这些 CSS 选择器。


二、获取 id 元素

HTML:

复制代码
<h1 id="title">
    学习JavaScript
</h1>

CSS 找它:

复制代码
#title

所以 JS:

复制代码
let h1 = document.querySelector("#title");

解释:

拆开看:

复制代码
document

表示整个网页。

复制代码
.querySelector()

表示寻找元素。

复制代码
"#title"

表示寻找 id=title。

所以:

复制代码
document.querySelector("#title")

就是:

在网页中找到 id 为 title 的元素。


然后:

复制代码
h1.innerHTML="你好";

页面:

之前:

复制代码
学习JavaScript

变成:

复制代码
你好

三、获取 class 元素

HTML:

复制代码
<p class="text">
    我是文字
</p>

CSS:

复制代码
.text

注意:

class 前面必须加:

复制代码
.

所以:

复制代码
let p=document.querySelector(".text");

找到:

复制代码
<p class="text">

四、获取标签元素

HTML:

复制代码
<h1>
标题
</h1>

CSS:

复制代码
h1

JS:

复制代码
let h1=document.querySelector("h1");

注意:

标签不用加符号。

错误:

复制代码
document.querySelector("#h1")

这是找:

复制代码
id="h1"

不是找标签。


五、最重要:querySelector只能获取第一个

例如:

HTML:

复制代码
<p class="text">
第一段
</p>

<p class="text">
第二段
</p>

<p class="text">
第三段
</p>

JS:

复制代码
let p=document.querySelector(".text");

结果:

只得到:

复制代码
<p class="text">
第一段
</p>

为什么?

因为:

querySelector = 找第一个符合条件的。


如果想全部获取:

使用:

复制代码
document.querySelectorAll(".text");

得到:

复制代码
第一段
第二段
第三段

六、组合选择器(非常重要)

querySelector 最大的优势:

它支持 CSS 的复杂选择器。

比如:

HTML:

复制代码
<div class="box">

    <p>
        hello
    </p>

</div>

你想找 div 里面的 p。

CSS:

复制代码
.box p

意思:

找到:

复制代码
class为box里面的p

JS:

复制代码
let p=document.querySelector(".box p");

成功找到:

复制代码
<p>
hello
</p>

七、举一个完整例子

HTML:

复制代码
<div id="box">

    <h1>
        标题
    </h1>

    <p>
        内容
    </p>

</div>

需求:

修改标题。


方法:

复制代码
let title=document.querySelector("#box h1");


title.innerHTML="新的标题";

分析:

复制代码
"#box h1"

相当于 CSS:

复制代码
#box h1

意思:

找到:

复制代码
id=box里面的h1

八、querySelector 常用写法总结

HTML CSS写法 JS
id="box" #box querySelector("#box")
class="box" .box querySelector(".box")
div标签 div querySelector("div")
div里面p div p querySelector("div p")
第一个li li querySelector("li")

九、你可以这样记

以前:

复制代码
document.getElementById("box")

现在:

复制代码
document.querySelector("#box")

等价。

class:

以前:

复制代码
document.getElementsByClassName("box")

现在:

复制代码
document.querySelector(".box")

最后用一句话记忆:

复制代码
querySelector("CSS选择器")

看到什么 CSS 写法,就直接放进去。

例如:

CSS:

复制代码
#nav .item p

JS:

复制代码
document.querySelector("#nav .item p")
相关推荐
90后小陈老师1 小时前
AI Agent 四文件约束法:从零搭一套能用的 system prompt(附完整提示词)
人工智能·prompt
明志数科1 小时前
具身智能数据Scaling路径:百万小时训练数据的闭环架构与产业协同
人工智能
ivywriter1 小时前
【具身智能】物流仓储机器人要处理形态多变的货物,一般是通过什么方式训练其抓取和搬运能力的?
人工智能·机器人
AI 小老六1 小时前
Brainstorming 与 grill-me 在 AI 产品设计和工程决策中的分工边界
人工智能·ai·架构·创业创新
jikemaoshiyanshi1 小时前
Amazon Bedrock 和 SageMaker Inference 分别适合哪些企业大模型部署场景?
大数据·人工智能
看浪的路人2 小时前
第5讲:代码审查与 Bug 检测
开发语言·windows·python
云端漫步19872 小时前
HarmonyOS NEXT AI 智能生活助手:项目打包与发布
人工智能·华为·生活·harmonyos
方品2 小时前
【无标题】
服务器·人工智能·深度学习·nlp
invicinble2 小时前
有思路把握一下skills和mcp
人工智能