The following code is producing an error for me
tab.addEventListener("click", (e) => {
e.preventDefault();
if (document.getElementsByTagName("a").classList.contains("active")) {
document.getElementsByTagName("a").classList.remove("active");
} else {
console.log("nothing")
}
})
It is producing this error in the console.
Uncaught TypeError: Cannot read properties of undefined (reading 'contains')
I am confused, because I am not sure why this error is happening. Even stranger, when the classList.remove("active") is outside of the conditional, the same error occurs, with contains replaced with add. Can someone explain to me why this error is happening?
Thank you
document.getElementsByTagName("a")
returns an array
.classList will be undefined on an array
So when you try to access the contains() method you get the error that you are seeing.
A solution would be to use a filter and for each on the array.