28

这是一个非常简单的程序,输出应该是JavaScript,但我只得到s.

<html>
    <head>
        <title></title>
        <script type="text/javascript">
          document.getElementById("ma").innerHTML="JavaScript";
        </script>
    </head>
    <body>
        <h1 id="ma">s</h1>
    </body>
</html>
4

9 回答 9

37

在您尝试设置值时,该元素不存在。您需要在<h1>添加到 DOM 后调用它。

您可以将此<script>标记进一步向下移动,或者将您的逻辑添加到应该在加载文档时调用的函数:

window.onload = function() {
    /* Add your logic here */
}

演示:http: //jsfiddle.net/Lr2Hm/

于 2012-05-31T02:36:41.030 回答
14

您必须等到 DOM 加载完毕。

window.onload = function(){
    document.getElementById("ma").innerHTML="JavaScript";
}
于 2012-05-31T02:36:53.867 回答
13

您有 2 个选择:

window.onload = function() {
  //your script here
}

或者

<body>
    <h1 id="ma">s</h1>
    <script type='text/javascript'>
        //your script here
    </script>
</body>
于 2012-05-31T02:44:44.423 回答
2

提供的选项对我不起作用。 document.querySelector为我工作!

例如:

document.querySelector("#ma").innerHTML = "HELLO";
于 2020-01-14T20:57:49.337 回答
1

请注意,您使用 element.innerHTML="anything" 编写的任何内容都将替换您 element 的实际内容。如果要添加更多内容,则必须将所有内容存储到累积变量中,即元素的实际内容,以便保留它,然后在内容已满时将此变量解析为 innerHTML。

<script type=text/javascript">
var MyFullVar = element.innerHTML + "my new content I want to add";
element.innerHTML = MyFullVar;
</script>
于 2018-06-07T09:17:15.903 回答
1

您还可以defer在 DOM 初始化后将关键字与脚本一起使用来执行它

<script type=text/javascript" defer>/*Your script here*/</script>
于 2021-07-04T07:18:26.400 回答
0

你也可以这样做...

<script type=text/javascript">
    window.onload = function () {
        var element = document.getElementById('element').innerHTML;
        var content = ".........";
        element.innerHTML += content.toString();
    }
    </script>

根据w3schools和基本的 JavaScript 规则,这是可行的。我以前也试过这个。

这以 onload 函数为基础,在启动时自动运行代码。它还利用 JS 赋值运算符来快速有效地执行代码。

于 2019-12-17T20:26:18.907 回答
0

这个怎么样

function change(){
  document.getElementById("content").innerHTML = "Javascript";
}
<html>
<div>
<p id="content">TypeScript</p>
<button onclick="change()">Change</button>
</div>
</html>

于 2021-10-28T09:09:57.987 回答
0

只需将script标签放在底部即可。

<!doctype html>
<html>
<head>
Head Content here...
</head>
<body>
Body Content...
<script>
script function here...
</script>
</body>
</html>
于 2021-12-25T02:03:34.113 回答