は、完全なエラーメッセージです後に既存の要素にnullを返します:のdocument.getElementByIdは、ここでのdocument.write
mlg.html:41 Uncaught TypeError: Cannot set property 'innerHTML' of null
at ml (mlg.html:41)
at HTMLButtonElement.onclick (mlg.html:9)
私は怒っLIBSゲームを作っていたと私はちょうどバグを見つけるために、簡単なテストをしていたし、私はこの問題を見つけた。ここでは、コードは次のとおりです。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<button type="button" onclick="ml()">Mad Libs!</button>
<p id="display"></p>
<script>
function ml() {
var x = Math.floor((Math.random() * 10) + 1);
//mad lib 1
if (x == 1 || 2) {
document.write("test1");
}
//mad lib 2
if (x == 3 || 4) {
document.write("test2");
}
//mad lib 3
if (x == 5 || 6) {
document.write("test3");
}
//mad lib 4
if (x == 7 || 8) {
document.write("test4");
}
//mad lib 5
if (x == 9 || 10) {
document.write("test5");
}
document.getElementById("display").innerHTML = x;
}
</script>
</body>
</html>
問題は、 'document.write'がページ全体の内容を上書きするため、その文に達したときに'#display'要素がないことです。また 'x == 1 || 2'は' x == 1 || x == 2 'である。 – Xufox
関連:http://stackoverflow.com/q/12471249/4642212 – Xufox