问题描述
我想为 onmouseover 的事件监听器上的所有 span 元素添加一个 scaleUp 类。
我认为这可以通过 forEach() 方法实现,但我无法做到
我的 HTML:-
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>
<span>H</span>
<span>E</span>
<span>L</span>
<span>L</span>
<span>O</span>
<span class="special">!</span>
</h1>
<script src="app.js"></script>
</body>
</html>
我当前的 Javascript 代码:-
const letters = document.querySelectorAll('span');
for (var i = 0 ; i < letters.length; i++) {
letters[i].addEventListener('onmouseover',function(){
letters.classList.add('scaleUp');
}) ;
}
我知道我的代码有很多问题,但请帮忙。提前致谢
解决方法
有几个问题:
-
'onmouseover'
应该是'mouseover'
- 在事件中,您引用的是
letters
而不是 this
我添加了一个小片段来向您展示如何做到这一点。
const letters = document.querySelectorAll('span');
for (var i = 0 ; i < letters.length; i++) {
letters[i].addEventListener('mouseover',function(){
this.classList.add("scaleUp");
}) ;
}
.special {
color: red;
}
.scaleUp {
color: blue;
}
<h1>
<span>H</span>
<span>E</span>
<span>L</span>
<span>L</span>
<span>O</span>
<span class="special">!</span>
</h1>