javascript - 使用 Javascript 更改站点范围内刷新时某些元素的字体
问题描述
正如标题所暗示的那样,我试图在整个网站上随机化我的 h1 标题的字体。所有这些都使用 php count 分配了一个单独的 ID,因此它们采用 project-title-1、project-title-2 等格式。
我已经从我在这里找到的一个类似问题中重新调整了这段代码的用途,但尝试应用它以便它适用于多个元素。
目前,如果我从 querySelector 中删除 All ,它适用于页面上的第一个元素,但没有其他元素,因此代码类型有效,但某处存在问题。
任何见解将不胜感激!干杯
var fonts = ['hauser', 'helvetica', 'times'];
var rand = fonts[Math.floor(Math.random() * fonts.length)];
console.log(rand);
var bodyElement = document.querySelectorAll("[id^='project-title']");
bodyElement.className = rand;
这里的基本工作示例: https ://jsfiddle.net/psvu78aq/2/
解决方案
一种理想的方法是将类应用于父元素,以便它应用于它的所有子元素。
但是,只是为了修复您的代码,以下应该可以工作:
var bodyElement = document.querySelectorAll("[id^='project-title']");
bodyElement.forEach(elem => elem.classList.add(rand));
原因是(如您所知),document.querySelectorAll
返回元素的集合。所以你需要经历每一个,然后单独应用这个类。
推荐阅读
- laravel - 添加新路由后Laravel错误500(未定义变量'e')?
- heroku - 如何使用本地路径依赖于 Heroku 的 phoenix 应用程序
- python - 如何使用python过滤CSV文件中两个日期之间的行并重定向到另一个文件?
- angular - 如何使用给定的注入令牌将依赖项注入提供程序?
- eclipse - 如何使 IntelliJ IDEA 在侧栏中显示不同出现的颜色
- ios - 运行时警告:无法加载从带有标识符“bundleId”的包中的笔尖引用的图像“imageName”
- javascript - JavaScript:将来自 youtube 频道的视频作为 API json 导入我的网站
- mysql - org.apache.solr.common.SolrException:无法创建核心
- hive - 如何使用 Hive SQL 将日期 2017 年 7 月 1 日转换为 dd-MM-yyyy?
- heatmap - 热图开发 - 颜色调节