【发布时间】:2021-04-04 19:31:19
【问题描述】:
我正在尝试使用外部(非内联)JavaScript 代码来处理多个元素,具体取决于它们的类和 id。
我的目标是,如果一个元素属于某个类,当它悬停在上面时,它的 CSS 将根据它的 id 名称而改变。
在这个例子中:
<p class="p-class" id="000">Hi</p>
<p class="p-class" id="FFF">Hi</p>
<p class="p-class" id="FFFF66">Hi</p>
<p class="p-class" id="498F83">Hi</p>
我的目标是得到这个:
<p class="p-class" id="000" style="color:#000">Hi</p>
<p class="p-class" id="FFF" style="color:#FFF">Hi</p>
<p class="p-class" id="FFFF66" style="color:#FFFF66">Hi</p>
<p class="p-class" id="498F83" style="color:#498F83">Hi</p>
我在这个方向上想过一些事情:
const pElements = document.querySelectorAll('.p-class');
for (let i = 0; i < pElements .length; i++) {
pElements[i].addEventListener('mouseover', function() {
pElements[i].style.color = `#${pElements[i].getAttribute('id')`;
});
}
但是,我对此比较陌生,不知道上面的代码是否有效或如何正确触发。
任何见解/建议都将受到高度赞赏!
【问题讨论】:
-
除了这一行末尾缺少
},您的代码没问题。正确的代码是:pElements[i].style.color = `#${pElements[i].getAttribute('id')}`;但是,依赖id属性是有问题的,除非您可以保证每个 id 具有不同的值。你最好使用data attribute,比如data-color。
标签: javascript html css