How can I add a class to 2 divs that have same class?
In this example I have 3 div and 2 of them share the class ".matched".
How can I add in JS another class (for example .sameclass) to these 2 divs?
Many many thanks in advance!
<div class="container">
<div class="box1 matched"></div>
<div class="box2 matched"></div>
<div class="box3"></div>
</div>
CSS
.container {
display: flex;
}
.box1 {
width: 100px;
height: 100px;
background-color: red;
}
.box2 {
width: 100px;
height: 100px;
background: green;
}
.box3 {
width: 100px;
height: 100px;
background: purple;
}
Search for the elements with querySelectorAll and then use element.classList.add("matched") within a loop to add the classes.
getElementsByClassName().let divs=document.getElementsByClassName("matched");
This returns a HTMLcollection - basically an array - of all the elements with a CSS class matched.
.classList.add() method. e.g.myElement.classList.add("anotherClass");
All together we have:
let divs = document.getElementsByClassName("matched");
for (let a = 0; a < divs.length; a++) {
divs[a].classList.add("anotherClass");
}
.anotherClass {
color: red;
}
<div class="container">
<div class="box1 matched">a</div>
<div class="box2 matched">b</div>
<div class="box3">c</div>
</div>
You can write somthing like this:
let elements = document.getElementsByClassName("matched");
for(let element of elements) {
element.classList.add("same");
}