javascript更改innerhtml

Dav*_*vid 12 javascript innerhtml

好吧我是新的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>
Run Code Online (Sandbox Code Playgroud)

它应该工作,但由于某种原因它没有,任何帮助?

Ais*_*ina 18

您正在调用该函数并存储其结果,而不是分配var1window.onload您.此外,这可能是显而易见的,但var1似乎是函数的奇怪名称.试试这个:

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

window.onload = var1;
Run Code Online (Sandbox Code Playgroud)

注意onload后面的套管,以及丢失的括号var1.

  • 您不应该使用innerHTML,这是非标准的,也是一种不好的做法。使用诸如createElement,createTextNode和appendChild之类的DOM方法要安全得多。 (2认同)

小智 6

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

  • 没有.使用`innerHTML`是最快的方法. (10认同)
  • 它是非标准的,因此它可能导致不确定的行为,即:安全漏洞,因此是不好的做法.我不敢相信有人投了这个...... (4认同)

Ana*_*liy 5

正确:

window.onload = var1;
Run Code Online (Sandbox Code Playgroud)

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