【问题标题】:innerHTML not working in JSFiddle test projectinnerHTML 在 JSFiddle 测试项目中不起作用
【发布时间】:2014-02-03 18:42:34
【问题描述】:

编辑:这是 JSFiddle 的链接:http://jsfiddle.net/retserrof84/aLPPv/3/

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

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

好的,下面是 JavaScript:

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

就是这样。有人可以帮我看看我做错了什么吗?奇怪的是我在一个更复杂的项目中使用了 innerHTML 和 onclick 并且效果很好,所以我知道我一定犯了一些愚蠢的错误。

我已经搜索了其他答案,我唯一能找到的就是该函数可能会在 ID 存在之前以某种方式被调用,但我已将函数调用和受影响的元素分开,并将稍后调用函数,所以我不知道为什么这仍然是一个问题。任何帮助,将不胜感激。

【问题讨论】:

  • 你的测试项目中的 jsFiddle 在哪里?
  • 非常抱歉,链接如下:jsfiddle.net/retserrof84/aLPPv/3
  • 它正在工作....见这里...jsfiddle.net/ZPvB3
  • @StephenS。查看您的浏览器控制台。单击链接后,您可以轻松跟踪发生的错误。:)
  • 函数changeMewindow.onload的本地范围内声明,(默认在jsFiddle中,JavaScript窗口中的所有代码都用window.onload函数包裹)将其更改为“无包裹-正文或头”(在窗口的左上角)。

标签: javascript onclick innerhtml


【解决方案1】:

您需要注意左侧工具箱选项,即您想要脚本的位置(在 head/domready 等中)。

这是有效的:

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

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

http://jsfiddle.net/59DFY/

【讨论】:

  • 谢谢!我知道这一定很愚蠢,我只是看不出是什么。我想这是因为我对这一切还很陌生。非常感谢您的帮助!
【解决方案2】:

你很可能没有在你的头(或身体)中添加那个 JS 文件,这就是为什么它说你的函数没有在 Fiddle 中定义。一定要链接到它。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多