I was trying to highlight some elements on event mouseover using plain javascript. My code is below.
<!DOCTYPE html>
<html lang="en">
<head>
<title>Document</title>
</head>
<body>
<div id="container" class="container">
<div class="class1">Class 1</div>
<div class="class1">Class 2</div>
<div class="class1">Class 3</div>
</div>
<script>
var class1 = document.getElementsByClassName("class1");
for (var i = 0; i < class1.length; i++) {
class1[i].addEventListener('mouseover', function () {
console.log(class1[i])
this.setAttribute("style", "background-color:cyan;color:#ffffff")
// class1[i].innerHTML += "working ";
})
class1[i].addEventListener('mouseleave', function () {
console.log(class1[i])
this.setAttribute("style", "background-color:#fff;color:#000")
// class1[i].innerHTML += "working ";
})
}
</script>
</body>
</html>
I noticed that class1[i] is undefined, but 'this' isn't. Why is it so?