【问题标题】:Beginner javascript text display [duplicate]初学者javascript文本显示[重复]
【发布时间】:2014-01-26 13:33:38
【问题描述】:

我的 JavaScript 有问题,当我将它放入 JSFiddle 时,它​​可以正常工作。但它不会在本地工作?这是小提琴:http://jsfiddle.net/4Ukkz/

var String = "preacher preacher, 5th grade teacher";
document.getElementById('text').innerHTML=String;

所以问题来了。在 JSFiddle 中,会显示文本,但在本地什么都不会显示。 笔记。它在小提琴中起作用。但不在我的电脑上

【问题讨论】:

  • 您正试图在 DOM 准备好之前对其进行操作。小提琴使用 onLoad 事件运行 js。
  • 正如有人指出的那样(似乎他们删除了他们的答案),创建一个名为“String”的变量是不好的形式。 String 是 JavaScript 中提供的全局对象/构造函数,通过重新定义它,如果其他人试图在同一范围内使用全局 String,您可能会遇到很多麻烦。我猜是tl;博士;不要使用名为“String”的变量,将其命名为别的。

标签: javascript


【解决方案1】:

在 JSFiddle 中,您的代码会自动包装为

window.onload = function() {
    // your code
};

这是必要的,因为在您的代码中,script.js 包含在 <div id="text"></div> 之上。如果您不等到该元素存在,document.getElementById('text') 将返回 null,并且尝试设置 innerHTML 将失败。

解决方案是像上面一样包装你的代码将你的script标签移动到div下面。

【讨论】:

    【解决方案2】:

    可能您没有包含粘贴在小提琴中的 javascript 代码的 script.js 文件?

    然后将脚本元素移动到你的身体之后。因此,您的 JavaScript 代码将在正文中的所有元素创建后运行。

    所以是这样的:

    <html>
    <title>hi</title>
    <head>
    <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
    <body>
    <div id="text"></div>
    </body>
    <script type='text/javascript' src='script.js'></script>
    </html>
    

    【讨论】:

      猜你喜欢
      • 2022-10-15
      • 2016-12-08
      • 2015-02-11
      • 2019-05-30
      • 1970-01-01
      • 2019-10-21
      • 2013-07-04
      • 2015-02-18
      • 1970-01-01
      相关资源
      最近更新 更多