-1

只是想知道是否有人可以查看这段代码并让我知道我是否正确。尝试遍历 allCells 对象集合并将背景颜色设置为白色并运行一个事件处理程序,该处理程序在单击每个单元格时运行 changeColor() 函数。谢谢!

window.onload = setPuzzle;

var allCells;

function setPuzzle() {
    var puzzleTable = document.getElementById("puzzleCells");
    var allCells = document.getElementsByName("puzzleTable");

for (var i = 0; i < allCells.length; i++) {
    allCells[i].style.backgroundcolor = "white";    
    }

for (var i = 0; i < allCells.length; i++) {
    allCells[i].onclick = changeColor()
    }

document.getElementById("solution").onclick = showSolution();
document.getElementById("hide").onclick = hideSolution();
document.getElementById("check").onclick = checkSolution();
document.getElementById("uncheck").onclick = uncheckSolution();     
}       
4

1 回答 1

0

在你的第一个循环之前

allCells[i].document.getElementsByName(allCells)

应该有类似的东西

allCells = document.getElementsByName( [[ NAME ]] );

document.getElementsByName(allCells)

不能工作,因为allCells没有设置任何东西。

将 allCells 设置为元素列表后,您可以像这样遍历它们:

allCells[i].style.backgroundColor = "white";

并且 JavaScript 区分大小写,因此您必须编写 backgroundColor 而不是 backgroundcolor。

更新:要将功能分配给事件,您必须编写

.onclick = yourFunction;

不是

.onclick = yourFunction();

从长远来看,使用它会更好:

.addEventListener("click", yourFunction);
于 2013-09-24T13:47:53.560 回答