Home  >  Article  >  Web Front-end  >  How to Dynamically Style Multiple Elements with the Same Class by Event Hovering in JavaScript?

How to Dynamically Style Multiple Elements with the Same Class by Event Hovering in JavaScript?

Susan Sarandon
Susan SarandonOriginal
2024-10-24 07:48:02149browse

How to Dynamically Style Multiple Elements with the Same Class by Event Hovering in JavaScript?

How to Style Multiple Elements with the Same Class Using JavaScript

When working with HTML and CSS, sometimes you need to dynamically change the styling of multiple elements with the same class. In this case, the question is about using getElementsByClassName to change the background color of all elements with a given class when hovering over another page element.

The problem arises because getElementsByClassName returns a collection of elements, not a single element. To style multiple elements, you need to loop through the collection and apply the style changes to each element.

<code class="js">var elements = document.getElementsByClassName('classname');
for (var i = 0; i < elements.length; i++) {
  elements[i].style.backgroundColor = 'red';
}

Another issue is that the hover event is not correctly attached to the target element. In the original code, the onmouseover event is attached to the trigger element (the one being hovered over). To change the styling of the target elements, the event should be attached to the target elements themselves.

<code class="html"><th class="classname" onmouseover="changeColor(this)">Hover Here</th></code>

Finally, it's important to note that inline event handlers like onmouseover are not recommended. Instead, you should use event listeners to attach event handlers to elements.

<code class="js">function changeColor(element) {
  element.style.backgroundColor = 'red';
}

document.querySelectorAll('.classname').forEach((element) => {
  element.addEventListener('mouseover', () => {
    changeColor(element);
  });
});</code>

By using these techniques, you can dynamically change the style of multiple elements with the same class when hovering over another page element.

The above is the detailed content of How to Dynamically Style Multiple Elements with the Same Class by Event Hovering in JavaScript?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn