使用 getElementsByClassName 更改元素样式
getElementsByClassName 允许您选择具有相同类名的多个元素。在给出的示例中,代码旨在当事件发生在具有特定类名称的 div 外部时更改这些 div 的背景颜色。
问题诊断
The提供的代码有一些问题:
解决方案
要解决这些问题,您可以使用以下更正的代码:
<code class="javascript">window.onload = function() { var aElements = document.getElementsByClassName('a'); var bElements = document.getElementsByClassName('b'); document.getElementById('A').addEventListener('mouseover', function() { changeColor(aElements, 'red'); }); document.getElementById('B').addEventListener('mouseover', function() { changeColor(bElements, 'blue'); }); }; function changeColor(elements, color) { for (var i = 0; i < elements.length; i++) { elements[i].style.backgroundColor = color; } }</code>
在此更正的代码中:
附加说明
为了获得最佳性能,请考虑缓存元素集合而不是每次都重新查询。此外,使用 CSS 类和事件侦听器进行样式更改比内联属性更有效。
以上是如何正确使用 getElementsByClassName 并根据事件更改元素样式?的详细内容。更多信息请关注PHP中文网其他相关文章!