【问题标题】:Need some direction需要一些方向
【发布时间】:2013-09-24 13:24:30
【问题描述】:

只是想知道是否有人可以查看此 sn-p 代码并让我知道我是否正确。尝试遍历 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();     
}       

【问题讨论】:

  • 第一个 for 循环看起来很奇怪,你应该有 allCells[i].style... 我猜
  • 当你尝试时会发生什么?
  • 我还没有尝试运行它。这是程序的开始,想确保我是正确的。我编辑了上面的代码以包含 allCells[i] 代码。如果我想将所有单元格的 bg 颜色更改为白色,是否需要 document.getElementsByTagName(allCells)?

标签: javascript object styles


【解决方案1】:

在你的第一个循环之前

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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    • 2020-09-29
    • 2013-08-16
    • 1970-01-01
    • 2011-10-09
    • 2019-11-17
    相关资源
    最近更新 更多