20

好的,我是 javascript 新手,但我试图更改 div 标签的 innerhtml,这是我的脚本,但它不起作用:

<head>
<script type="text/javascript">
function var1() {
document.getElementById('test').innerHTML = 'hi';
}
window.onLoad = var1();
</script>
</head>
<body>
<div id="test">change</div>
</body>

它应该可以工作,但由于某种原因它没有,有什么帮助吗?

4

7 回答 7

24

您当前正在调用该函数并存储其结果,而不是分配var1给。window.onload此外,这可能很明显,但var1对于函数来说似乎是一个奇怪的名称。试试这个:

function var1() {
  document.getElementById('text').innerHTML = 'hi';
}

window.onload = var1;

注意 的大小写onload以及后面缺少的括号var1

于 2010-02-12T20:24:01.643 回答
6

正确的:

window.onload = var1;

在您的 window.onload 示例值中,是undefined因为函数 var1 不返回任何内容(undefined)。您应该将 onload 属性设置为函数 var1,而不是调用函数 var1() 的结果

于 2010-02-12T20:16:50.063 回答
6

由于许多原因,使用.innerHTML非标准的,并且是一种糟糕的做法。您应该使用适当的标准方法创建一个新元素,并将其添加到您想要的树中

于 2010-02-12T20:29:48.517 回答
3

下面是另一个更简单的版本

<body>
 <div id="test">change</div>
  <script type="text/javascript">
   document.getElementById('test').innerHTML = 'hi';
 </script>
</body>

于 2016-05-20T07:33:09.273 回答
1

您将获得一个 id 为“test”的元素,但在您的 html 中没有具有该 id 的元素。但是,有一种叫做“文本”。

于 2010-02-12T20:13:01.227 回答
1

如果您将“onLoad”中的大写“L”更改为小写“L”并删除您当前拥有window.onLoad = var1();的 var1 之后的括号,则您的示例将起作用。

于 2010-02-12T20:32:37.183 回答
0

尝试将 onLoad 更改为 onload。

函数 var1() {
  document.getElementById('test').innerHTML = 'hi';
}
窗口.onload = var1; // 负载
于 2010-02-12T20:29:23.507 回答