通过querySelectorAll访问for循环中的项目

时间:2019-06-12 14:45:02

标签: javascript

我正在尝试在从querySelectorAll获取的列表中的每个li上使用addEventListener,在将鼠标悬停在其上方时更改每个项目的颜色。但是,我不能通过使用列表中项目的索引来更改颜色,而必须使用它。我想知道为什么索引在这里不起作用

var lis = document.querySelectorAll("li");
for(var i = 0; i < lis.length; i++) {
   lis[i].addEventListener("mouseover", function() {
       this.style.color = "green";
    }); 
}

1 个答案:

答案 0 :(得分:0)

您还需要使用mouseout事件。您还可以使用classList.addmouseover上添加一个类,并在mouseout上使用classList.remove来删除该类

var lis = document.querySelectorAll("li");
for (var i = 0; i < lis.length; i++) {
  lis[i].addEventListener("mouseover", function() {
    this.classList.add("green");
  });

  lis[i].addEventListener("mouseout", function() {
    this.classList.remove("green");
  });
}
.green {
  color: green;
}
<ul>
  <li>1</li>
  <li>1</li>
  <li>1</li>
  <li>1</li>
  <li>1</li>
  <li>1</li>



</ul>