首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这段代码不能工作?

为什么这段代码不能工作?
EN

Stack Overflow用户
提问于 2014-02-14 03:11:49
回答 3查看 83关注 0票数 0

这段代码应该可以工作..但它没有,我收到一条错误消息,上面写着:

代码语言:javascript
运行
复制
Uncaught TypeError: Cannot set property 'innerHTML' of null

这不是我第一次收到这个错误了,我仍然不理解它。

HTML:

代码语言:javascript
运行
复制
<!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:

代码语言:javascript
运行
复制
var things = ['rock','paper','scissors'];

function myFunction() {

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

回答 3

Stack Overflow用户

发布于 2014-02-14 03:13:51

看起来您没有任何It为test1test2等的元素。

票数 1
EN

Stack Overflow用户

发布于 2014-02-14 03:14:22

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

代码语言:javascript
运行
复制
document.getElementById("test"+(i+1))

您的HTML中有:

代码语言:javascript
运行
复制
<p id="test"></p>

您的代码正在查找"test3“

票数 1
EN

Stack Overflow用户

发布于 2014-02-14 03:15:48

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

代码语言:javascript
运行
复制
document.getElementById("test").innerHTML=things[i];

如果你想把它放入多个元素中,那么在你的超文本标记语言中,将<p id="test"></p>替换为:

代码语言:javascript
运行
复制
<p id="test1"></p>
<p id="test2"></p>
<p id="test3"></p>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21763402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档