I have an Element
, and I can not figure out how to get the HTMLElement
from it.
For example:
<a href="">A link</a> <a href="">Another link</a>
I then get them like so:
var nodes: NodeListOf<Element> = document.querySelectorAll('a'); // Returns a NodeList of Elements for (let i = 0; i < nodes.length; i++) { var node = nodes.item(i); // How can I get the HTMLElement here? }
Edit
Here is the code:
let nodes: NodeListOf<Element> = document.querySelectorAll('a'); for (let i = 0; nodes[i]; i++) { let node = nodes[i]; var c = nodes[i].style.backgroundColor = 'red'; }
You just need to cast it:
let nodes = document.querySelectorAll('a'); for (let i = 0; nodes[i]; i++) { let node = nodes[i]; var c = (nodes[i] as HTMLElement).style.backgroundColor = 'red'; }
You can even cast to a more specific element:
(nodes[i] as HTMLAnchorElement).style.backgroundColor = 'red';
The thing is that document.querySelectorAll
returns the most generic element type, but if you know yourself what is the specific type then you can cast, because you "know better" than the compiler.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With