Javascript innerHTML在JSFIDLE测试项目中不起作用

Javascript innerHTML在JSFIDLE测试项目中不起作用,javascript,onclick,innerhtml,Javascript,Onclick,Innerhtml,编辑:这里是指向JSFIDLE的链接: 所以这绝对是个愚蠢的问题,但我已经在键盘上敲了几个小时了。我试图使用innerHTML来更改div的内容,但它什么也没做。以下是测试HTML: <body> <div id="hola"> Hola. </div> <div> <a onclick="changeMe()">Click here.</a> </div> </body&g

编辑:这里是指向JSFIDLE的链接:

所以这绝对是个愚蠢的问题,但我已经在键盘上敲了几个小时了。我试图使用innerHTML来更改div的内容,但它什么也没做。以下是测试HTML:

<body>
  <div id="hola">
    Hola.
  </div>
  <div>
    <a onclick="changeMe()">Click here.</a>
  </div>
</body>
就这样。有人能帮我看看我做错了什么吗?奇怪的是,我在一个更复杂的项目中使用了innerHTML和onclick,效果很好,所以我知道我一定犯了一些愚蠢的错误


我已经搜索了其他答案,在这些答案中我能找到的唯一一件事是,函数可能在ID存在之前被调用,但我已经将函数调用和受影响的元素分开,然后将函数调用放在后面,所以我不知道为什么这仍然是一个问题。任何帮助都将不胜感激

您需要注意“左工具箱”选项,您希望脚本位于head/domready等位置

这是有效的:

<body>
  <div id="hola">
    Hola.
  </div>
  <div>
    <a onclick="changeMe()">Click here.</a>
  </div>
</body>

function changeMe() {
  document.getElementById("hola").innerHTML="Hello!";
}

您需要注意左工具箱选项,在这里您希望您的脚本位于head/domready等中

这是有效的:

<body>
  <div id="hola">
    Hola.
  </div>
  <div>
    <a onclick="changeMe()">Click here.</a>
  </div>
</body>

function changeMe() {
  document.getElementById("hola").innerHTML="Hello!";
}

您很可能没有在头部或身体中添加JS文件,这就是为什么它说您的函数没有在小提琴中定义。一定要链接到它

<head>
  <script src="link-to-file"></script>
</head>

您很可能没有在头部或身体中添加JS文件,这就是为什么它说您的函数没有在小提琴中定义。一定要链接到它

<head>
  <script src="link-to-file"></script>
</head>

那么你的测试项目的JSFIDLE在哪里?非常抱歉,这里是链接:它正在工作…请看这里…@StephenS。查看您的浏览器控制台。您可以很容易地跟踪单击链接后发生的错误:函数changeMe在window.onload的本地范围内声明,默认情况下在JSFIDLE中,JavaScript窗口中的所有代码都用window.onload函数包装。onload函数在窗口的左上角将其更改为no wrap-body或head。您的测试项目的JSFIDLE在哪里?非常抱歉,这里是链接:它正在工作…看这里…@StephenS。查看您的浏览器控制台。您可以很容易地跟踪单击链接后发生的错误:函数changeMe在window.onload的本地范围内声明,默认情况下在JSFIDLE中,JavaScript窗口中的所有代码都用window.onload函数包装。onload函数在窗口的左上角将其改为无包装-body或head。谢谢!我知道这一定很愚蠢,我就是看不出是什么。我想这是因为我对这一切还很陌生。我真的很感谢你的帮助!非常感谢。我知道这一定很愚蠢,我就是看不出是什么。我想这是因为我对这一切还很陌生。我真的很感谢你的帮助!