【发布时间】:2022-01-07 16:23:58
【问题描述】:
我正在制作 Etch-a-Sketch。我目前有一定数量的 div。他们每个人都共享一个类和事件侦听器。我对每个函数都使用了一个,以便它们都遵循相同的事件。当我单击任何 div 时,它们都会变成蓝色。我希望我单击的一个 div 变为蓝色,而不是同时将它们全部变为蓝色。这是我的代码,我该怎么做才能使我单击的项目发生变化,而不是所有项目都发生变化。
function makeRows(rows, cols){
for (let i = 0; i < (rows * cols); i++){
let container= document.getElementById("container");
let cell= document.createElement("div");
cell.innerText = (i + 1);
cell.setAttribute('id','box');
container.appendChild(cell).className = "box";
}
};
makeRows(16,16);
//events
document.querySelectorAll('.box').forEach(box => {
box.setAttribute("style", "background-color: red;");
});
document.addEventListener('click', changeColor);
function changeColor(){
document.querySelectorAll('.box').forEach(box => {
box.setAttribute("style", "background-color:blue ;");
});
}
【问题讨论】:
标签: javascript foreach click