我有一个div容器,里面有一定数量的div,用for循环创建。当我点击其中一个div时,我需要让它改变颜色。我的问题是不知道如何用addEventListener选择一个特定的元素来改变颜色。
<body>
<div id="main-container"></div>
<script src="script.js"></script>
</body>
const mainContainer = document.getElementById("main-container");
for (let i = 0; i <= 11; ++i) {
const gridChildrens = document.createElement("div");
gridChildrens.setAttribute("class", `gridChildrens`);
const grids = document.querySelector('.gridChildrens')
mainContainer.appendChild(gridChildrens);
}
目前,我知道如何使用click侦听器更改第一个或最后一个元素的颜色,但不知道如何更改其余的div。
目前,我知道如何使用click侦听器更改第一个或最后一个元素的颜色,但不知道如何更改其余的div,我希望单击任何div并更改颜色。
4条答案
按热度按时间jm2pwxwz1#
尝试为循环中创建的每个div添加一个事件监听器,然后使用**'this'**设置颜色。
代码片段示例:
u5rb5r592#
要显式地将
querySelector
元素作为目标而不使用click
事件(该事件将检查www.example.com),您可以使用nth-child
或nth-of-type
样式的css选择器,如下所示。event.target ) you can use thenth-child
ornth-of-type
style css selector as below.要根据用户单击来标识元素,
event
本身将公开target
属性,该属性将是导致事件处理程序激发的元素。以下代码使用绑定到文档本身的delegated event listener
,该文档在需要时处理所有单击事件,但此处仅响应绑定到gridChildrens
元素的事件moiiocjp3#
这会让你对如何使用
addEventlistner
有一个很好的了解。基本上,你可以在任何时候通过event
对象来创建某个事件。它包含了你所寻找的特定div的所有信息,你可以用它来修改任何东西。但是记住先用addEventlistner
绑定元素。0yg35tkg4#
有几种方法可以做到这一点,例如,你可以在循环中给你的div添加相同的类,然后你可以通过
document.querySelectorAll('.class-name')
访问它们,所以smth是这样的: