4

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

<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>
4

5 回答 5

12

正如您在此处看到的那样,这是有效的:

http://jsfiddle.net/gHbss/

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

于 2012-04-14T22:52:58.060 回答
4

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

为了解决这个问题,您可以将 放在script页面末尾,就在结束标记</body>之前,或者在出现 或 时运行代码。onloadbodywindow

于 2012-04-14T22:52:38.227 回答
1

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

于 2012-04-14T22:51:48.693 回答
1

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

 window.onload=function(){
//your code
}
于 2012-04-14T22:53:04.573 回答
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>

希望上面的代码片段向您展示了修复

于 2012-04-14T23:02:28.713 回答