How to create a bulkhead by class?
-
<span class="allow"> 1 </span> <span class="allow"> 2 </span> <span class="allow"> 3 </span> <span class="allow"> 4 </span> <span class="deny"> 5 </span>
var d = document.getElementsByClassName("allow"); d.forEach((e) => { e.style = "backgound: red;" })
How can I change a property of elements through a class? And then I have an error that there is no function even though foreach, as if a function, I do not understand how to solve this.
Please show on js.JavaScript Adam Drake, Jun 22, 2020 -
You have an HTMLCollection, not an array, so there is no forEach.
Two options:
1. [... document.getElementsByClassName ("allow")] to transfer to an array, and then do forEach
2. If you don't need a Live collection of elements, use querySelectorAll to find the elements.
Option # 2 is usually preferred.
And, don't change the entire style property, just the desired style:
e.style.background = 'red';
Therefore, if you write everything as short as possible, then:
[...document.querySelectorAll('.allow')].forEach(element => {
element.style.background = 'red';
});Vivienne Coleman -
Everything is described in detail hereAnonymous
2 Answers
Your Answer
To place the code, please use CodePen or similar tool. Thanks you!