javascript - 将文本应用于所有 li 中具有特定类名的第一项
问题描述
我有一个包含多个项目的无序列表,为此我必须仅将文本应用于第一个带有 class 的项目status
。
目前,我尝试这样做的方式是将文本替换为具有 class 的所有项目status
。
我应该如何编写循环以仅将文本更改为具有类状态的第一个找到的项目(例如:名称 1 下的文本和下面代码段中名称 4 下的文本)。
var str = document.querySelectorAll(".second-level > .status");
for(i = 0; i < str.length; i++) {
str[i].textContent = "TEST ME";
}
.name {
font-weight: bold;
color: blue;
}
.status {
color: red;
}
ul {
display: flex;
margin-left: 1rem;
}
<ul>
<li>
<div class="second-level" style="display: block;">
<div class="name">Name 1</div>
<div class="status">Some text</div>
<div class="country">+000 000 000 000</div>
<div class="name">Name 2</div>
<div class="status">Some text</div>
<div class="country"></div>
<div class="country">+000 000 000 000</div>
<div class="name">Name 3</div>
<div class="status">Some text</div>
<div class="country"></div>
<div class="country">+000 000 000 000</div>
</div>
</li>
<li>
<div class="second-level" style="display: block;">
<div class="name">Name 4</div>
<div class="status">Some text</div>
<div class="country">+000 000 000 000</div>
<div class="name">Name 5</div>
<div class="status">Some text</div>
<div class="country"></div>
<div class="country">+000 000 000 000</div>
</div>
</li>
</ul>
解决方案
只需使用querySelector
. 它返回与指定选择器匹配的第一个元素。
for (let el of document.querySelectorAll(".second-level")) {
el = el.querySelector(".status");
if (el != null) el.textContent = "TEST ME";
}
.name {
font-weight: bold;
color: blue;
}
.status {
color: red;
}
ul {
display: flex;
margin-left: 1rem;
}
<ul>
<li>
<div class="second-level" style="display: block;">
<div class="name">Name 1</div>
<div class="status">Some text</div>
<div class="country">+000 000 000 000</div>
<div class="name">Name 2</div>
<div class="status">Some text</div>
<div class="country"></div>
<div class="country">+000 000 000 000</div>
<div class="name">Name 3</div>
<div class="status">Some text</div>
<div class="country"></div>
<div class="country">+000 000 000 000</div>
</div>
</li>
<li>
<div class="second-level" style="display: block;">
<div class="name">Name 4</div>
<div class="status">Some text</div>
<div class="country">+000 000 000 000</div>
<div class="name">Name 5</div>
<div class="status">Some text</div>
<div class="country"></div>
<div class="country">+000 000 000 000</div>
</div>
</li>
</ul>
推荐阅读
- laravel - 为什么 laravel 中的电子邮件通知不起作用?
- powershell - 如何在 GitHub 工作流/操作中的 PowerShell 下运行名称中带有变量的脚本
- sql - Postgres - 从给定的时间戳获取午夜
- html - 使用 CSS 在 inline-block 元素后强制换行
- python-3.x - 如何将新文件放在硬盘驱动器上的某个位置(python)
- multithreading - 关于线程通信将任务从被调用的子线程发回主线程
- excel - 如果出现 MsgBox,则停止宏
- rust - 替换结构中的迭代器
- javascript - javascript中的函数参数
- c++ - 如何创建两个具有相同名称和不同返回类型并基于布尔参数运行的函数