Javascript:不会更改div innerHTML

时间:2012-04-14 22:47:50

标签: javascript html

我真的不明白为什么这不起作用。我尝试了几个技巧,但我只是不明白。

<html>
<head>
<script type="text/javascript">
alert('Hey');
    var vText = document.getElementById("results");
        vText.innerHTML = 'Changed';
        alert(vText.innerHTML);
</script>
</head>
<body>
<div id="results">
hey there
</div>
</body>
</html>

5 个答案:

答案 0 :(得分:12)

这正如你所见:

http://jsfiddle.net/gHbss/

将JavaScript放在HTML div容器之后非常重要。

答案 1 :(得分:4)

您面临的问题是浏览器在呈现/处理页面时遇到JavaScript。此时它将alert()您的消息,但相关元素#results div在DOM中不存在,因此无法更改任何内容。

要解决此问题,您可以将script放在页面末尾,就在结束</body>标记之前,或者在onload事件的body事件中运行代码{1}}或window

答案 2 :(得分:1)

脚本必须放在div#results或执行onload之后,否则当你尝试访问它时,该元素仍然是未知的。

答案 3 :(得分:1)

您需要在onload事件中调用此脚本 即

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

答案 4 :(得分:1)

<html>
<head>
<script type="text/javascript">
function onloadCall()
{
    alert('Hey');
    var vText = document.getElementById("results");                                                 
    vText.innerHTML = 'Changed';
    alert(vText.innerHTML);
}
</script>
</head>
<body onload="onloadCall()">
    <div id="results">
    hey there
    </div>
</body>
</html>

希望上面的代码段显示修复