为什么这段代码不起作用?

时间:2014-02-13 19:11:49

标签: javascript

这段代码应该有用..但它没有,我得到一条错误信息,上面写着:

Uncaught TypeError: Cannot set property 'innerHTML' of null

这不是我第一次遇到这个错误,我仍然不明白......

HTML:

<!DOCTYPE html>
<html>
<head>
<title></title>

<link rel="stylesheet" type="text/css" href="mycss.css">
<script src="myjavascript2.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

</head>

<body>

<button onclick="myFunction()">Play</button>
<p id="test"></p>



</body>
</html>

的javascript:

var things = ['rock','paper','scissors'];

function myFunction() {

var i = Math.floor(Math.random()*things.length));
document.getElementById("test"+(i+1)).innerHTML=things[i];
}

3 个答案:

答案 0 :(得分:1)

看起来您没有任何包含test1test2等ID的元素。

答案 1 :(得分:1)

您的代码引用的元素在DOM中不存在:

document.getElementById("test"+(i+1))

你的HTML中有:

<p id="test"></p>

您的代码正在寻找“test3”

答案 2 :(得分:0)

如果您希望单个元素更改文本,请将其作为您的JavaScript:

document.getElementById("test").innerHTML=things[i];

如果您需要,请转到多个元素,然后在HTML中将<p id="test"></p>替换为:

<p id="test1"></p>
<p id="test2"></p>
<p id="test3"></p>