javascript - 将 ID 保存在变量中并为其添加样式
问题描述
我想随机突出显示<p>
带有id=JShighlight
. 它应该闪烁一次,然后另一个随机选择的单词应该闪烁。**我无法将所需的 css 样式添加到 ID。
这些单词嵌套在具有唯一 id 的 span 中,例如id="one"
oder id="two"
。喜欢:
<p id="JShighlight"> <span id="one">Lorem </span><span id="two">Ipsum </span><span id="three">Dolores</span></p>
为了随机选择一个单词,我用 JShighlight 的子节点构建了一个数组。并称它为 childNodeArray
let childNodeArray = document.getElementById('JShighlight').children;
然后我随机选择了一个索引:
let i = Math.floor(Math.random() * childNodeArray.length);
变量名称保存随机选择的 ID。
let name = childNodeArray[i].id;
对于这个随机选择的单词/Id
我想添加某种样式,以便该单词闪烁一次。我试过了:
name.classList.add("blinking");
(.blinking 是 css 类:
.blinking {
animation: blinkingText 0.6s 1;
/* animation-iteration-count: 1; */
}
)
但它不起作用。什么“有效”是:
document.getElementById(name).style.color = "red";
为什么我可以在后一种情况下而不是在前一种情况下将变量作为参数传递?如何将 css 类附加到变量 ID?
解决方案
在第一种情况下,name 是字符串而不是元素。
你可以做的是:
name = document.getElementById(name);
name.classList.add("blinking");
推荐阅读
- ruby-on-rails - 升级到 Rails 6 后,rspec-rails 在控制器测试中停止存根视图
- flutter - 消费者未使用 notifyListeners() 进行更新
- sql - 如何通过 VBA 运行 SQL 查询
- here-api - HERE TRAFFIC API TPEG,getmessage 加密
- xml - XSLT 2.0 for 循环一个与其他 XML 中的数据匹配的 XML 节点
- sql - Oracle sql 拆分行以填充 maxquantity
- r - 通过在 R 中对变量进行分组来有条件地更改值;基于两个数据帧中时间戳之间的差异时间的条件
- asp.net-core - 使用 CICD 管道为不同环境设置 AKS ConfigMap 数据
- java - 无法从数组值反序列化类型为“Covid”的值(令牌“JsonToken.START_ARRAY”)
- javascript - 为什么逻辑运算组合的结果值分别与它们中的每一个相矛盾?