javascript - 用javascript改变单个字符的颜色
问题描述
因为我无法将 HTML 添加到标题标签,所以我需要使用 Javascript 来更改单个字符的颜色。我正在使用以下代码,效果很好,但它仅将更改应用于第一个而不是以下代码。
const element = document.querySelector('h1');
element.innerHTML = element.innerHTML.replace('.', '<span style="color: red;">.</span>');
<h1>Hello.</h1>
<h1>Hello.</h1>
<h1>Hello.</h1>
我只是找不到更改代码的解决方案,因此它适用于每个标头。
解决方案
只需使用querySelectorAll
并迭代NodeList
您从中获得的使用for ... of
:
const h1s = document.querySelectorAll('h1');
for (const h1 of h1s) {
h1.innerHTML = h1.innerHTML.replace('.', '<span style="color: red;">.</span>');
}
<h1>Hello.</h1>
<h1>Hello.</h1>
<h1>Hello.</h1>
您也可以使用forEach
(这是 的一部分Array.prototype
,因此您首先需要将您的NodeList
转换为Array
):
const h1s = document.querySelectorAll('h1');
Array.from(h1s).forEach((h1) => {
h1.innerHTML = h1.innerHTML.replace('.', '<span style="color: red;">.</span>');
})
<h1>Hello.</h1>
<h1>Hello.</h1>
<h1>Hello.</h1>
最后但并非最不重要的一点是,您可以使用旧的索引 for 循环:
const h1s = document.querySelectorAll('h1');
for (let i = 0; i < h1s.length; i++) {
h1s[i].innerHTML = h1s[i].innerHTML.replace('.', '<span style="color: red;">.</span>');
}
<h1>Hello.</h1>
<h1>Hello.</h1>
<h1>Hello.</h1>
推荐阅读
- javascript - 将值更新到 AG 网格中的服务器
- node.js - Git 结帐问题 HEAD -> master
- python - 如何使用python在每个重复的csv行中添加不同的列数据?
- uwp - 使用 TrySilentDownloadAndInstallStorePackageUpdatesAsync 出错:指定的帐户不存在
- javascript - Javascript 将表格内容解析为 Json
- java - 是否有 Microsoft VS Code 的扩展来 lint `.java` 文件并编译为 `.class`?
- mongodb - MongoClient 不想发现副本集节点
- python-3.x - 如何从 selenium python 的下拉列表中输入值?
- java - 如何在java中从构造函数更改为枚举?
- amazon-web-services - Elastic Beanstalk 上的自定义工作器优先级