当鼠标悬停在div上时,我如何访问div并为它们着色.它们是在一个更大的容器中创建的,当用户输入一个值时,我无法通过另一个函数访问它们.
超文本标记语言
<body>
<div>
<div id="outer_container">
<div id="container"> </div>
</div>
<div id="user_input_container">
<input type="color" class="user_input" name="" id="colour_picker" value="#000000">
<button class="user_input" id="rainbow">Rainbow</button>
<div>
<div>
<input class="user_input" type="range" min="2" max="100" value="16" name="options"
id="grid_range">
</div>
</body>
JavaScript
let container = document.getElementById(`container`);
function createGrid(number) {
totalNumber = number * number;
while (container.hasChildNodes()) {
container.removeChild(container.firstChild);
}
for (let i = 0; i < totalNumber; i++) {
let gridSquare = document.createElement("div");
gridSquare.classList.add("grid_square");
let cellwidth = container.clientWidth / number + `px`;
let cellheight = container.clientHeight / number + `px`;
gridSquare.style.width = `${cellwidth}`;
gridSquare.style.height = `${cellheight}`;
container.appendChild(gridSquare);
}
}
document.addEventListener("DOMContentLoaded", () => {
createGrid(range.value);
});
let range = document.getElementById(`grid_range`);
range.addEventListener(`change`, () => {
createGrid(range.value);
});
let color = document.getElementById(`colour_picker`);
我所做的只是在createdGrid()
函数中添加了一个eventlistener()
,它从"color"
Select 器中获取值,但实际上无法访问内部的div并通过专门用于着色的外部函数对它们进行着色.
下面的eventlistener()
是我在createdGrid
函数的for()
循环中添加的.
gridSquare.addEventListener("mouseover", (event) => {
event.target.style.backgroundColor = color.value;
});
谢谢!