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")
相关推荐
Bode_20021 分钟前
TRIZ 理论知识体系与架构全景图
人工智能
richard_first4 分钟前
第21章 训练一个简单的 GPT
人工智能·gpt·深度学习
Highcharts.js12 分钟前
Highcharts 集成到 React 或 Vue 项目中时,如何高效地使用 TypeScript技巧?
vue.js·人工智能·react.js·typescript·前端框架·highcharts
应用市场13 分钟前
用本机跑的开源音乐模型,给安卓小游戏做 20 秒无缝循环背景音乐
android·python·游戏开发·soundpool·音频处理
小lo想吃棒棒糖13 分钟前
把 启元机器人Q1 的训练搬到昇腾 910B:从 MuJoCo 到 PPO 的一次完整迁移
人工智能·python·机器人·昇腾·具身智能
收放扳机14 分钟前
PCB自动化整机“末端执行器”与“机械手负载”的匹配选型
人工智能·科技·自动化·制造·pcb工艺
IT_陈寒15 分钟前
JavaScript实战技巧总结:深挖数组遍历的性能陷阱与实战解法
前端·人工智能·后端
weixin_3077791321 分钟前
RAG 级联失效分析——面试中的错误归因艺术
人工智能·python·面试·职场和发展
骑着蜗牛撵大象32722 分钟前
闲鱼捡漏自动化:关键词加价格上限先粗筛,AI 大模型再做第一轮判定
大数据·人工智能·ai·自动化·二手交易·闲鱼·关键词监控
AI创界者23 分钟前
Python 进阶实战(十八):API 网关安全与异步鉴权中间件 —— 基于 AsyncIO 的 JWT 零拷贝验权与动态黑名单过滤
人工智能·python·aigc