输入:
function timer() {
decimal++;
cs++;
decimalOut.innerHTML = decimal;
if (decimal >= 100) {
decimal = 0;
sec++;
if (sec > 59) {
sec = 0;
min++;
colon.innerHTML = ":";
minOut.innerHTML = min;
}
if (sec <= 9 && min > 0) {
sec = "0" + sec;
}
secOut.innerHTML = sec;
}
if (decimal <= 9) {
decimal = '0' + decimal;
decimalOut.innerHTML = decimal;
}
}
window.onkeyup = run;
function run() {
if (!running) {
decimal = 0;
sec = 0;
min = 0;
cs = 0;
secOut.innerHTML = "0";
minOut.innerHTML = "";
colon.innerHTML = "";
running = true;
scramble = "";
generateScramble();
interval = setInterval(timer, 10);
} else if (running) {
running = false;
clearInterval(interval);
timesDisplay.push(" " + timesOut.innerHTML);
csTimes.push(cs);
timesList.innerHTML = timesDisplay;
calculateStats();
}
}
输出:
未捕获的TypeError:无法设置null(...)
的属性'innerHTML'
这个错误应该发生在第350行,即:
<div id="basicallyaholderthing" style="position:absolute;left:0px;top:718px;width:801px;height:545px;z-index:11">
我也有一席之地:
<div id="timeOut"><span id="min"></span><span id="colon"></span><span id="sec">0</span>.<span id="decimal">00</span></div></br>
我已将输出放在html持有者的位置。根据错误,它只是不起作用。有人对此有所了解吗?
UPDATE *
以下是大多数设置变量的列表。
var running = false;
var interval;
var decimal = 0;
var sec = 0;
var min = 0;
var cs = 0;
var decimalOut = document.getElementById("decimal");
var secOut = document.getElementById("sec");
var minOut = document.getElementById("min");
var colon = document.getElementById("colon");
var timesOut = document.getElementById("timeOut");
var timesList = document.getElementById("timeList");
var clearAll = document.getElementById("clear");
var timesDisplay = new Array();
var csTimes = new Array();
var avAll = 0;
var avAllOut = document.getElementById("overallAv");
var best = 999999999999999999;
var bestOut = document.getElementById("fastest");
var worst = 0;
var numSolves = 0;
var total = 0;
var numSolvesOut = document.getElementById("solveNum");
答案 0 :(得分:1)
您的错误告诉您确切的问题:
未捕获的TypeError:无法设置null(...)
的属性'innerHTML'
它指的是以下其中一条:
decimalOut.innerHTML = decimal;
因此,decimalOut
设置为null
。
如果没有在一个地方看到所有代码,很难知道100%的原因,但最可能的原因是您的初始化代码:
var decimalOut = document.getElementById("decimal");
如果这导致它被设置为null
,则意味着:
decimal
head
而不是正文的底部,则通常会发生这种情况。我强烈建议您学习使用步骤调试器(例如,在Chrome开发工具中),这样您就可以在代码运行时以交互方式检查每个变量;这应该有助于你了解正在发生的事情。
答案 1 :(得分:0)
试试这个
您必须将完整代码放入javaScript的onload function()中
window.onload = function() {
// your code
}