使用javascript问题更新span标记值

时间:2012-09-17 12:09:20

标签: javascript

我正在尝试简单地更新span标记,使用以下方法...

<script type="text/javascript">

document.getElementById("myspan").innerHTML="newtext";  

</script>

<span id="myspan"> hereismytext </span>

但我收到以下错误:

document.getElementById(“myspan”)为空

关于导致这种情况的任何想法?

干杯

3 个答案:

答案 0 :(得分:2)

那是因为你需要在元素之后添加javascript(必须首先在DOM中创建元素才能让javascript看到它):

<span id="myspan"> hereismytext </span>
<script type="text/javascript">
    document.getElementById("myspan").innerHTML="newtext";  
</script>

或使用window.onload

<script type="text/javascript">
    window.onload = function(){
        document.getElementById("myspan").innerHTML="newtext";  
    }
</script>
<span id="myspan"> hereismytext </span>

答案 1 :(得分:0)

尝试将您的JavaScript代码放入一个函数中,并在页面onload处理程序中调用它 - 就目前而言,如果您在页面顶部有脚本标记,则DOM(因此您的范围)将不存在在您的代码执行时:

<script type="text/javascript">
funcion loaded(){
    document.getElementById("myspan").innerHTML="newtext";  
}
</script>

<body onload="loaded()">
    ...

答案 2 :(得分:0)

当您与DOM通信时,您需要确保它存在/准备好进行修改。在您的示例中,您正在更改标识myspan之前存在的元素(javascript在html之前运行),因此浏览器无法找到它。你需要把它放在:

之后
<!-- HTML -->
<script type="text/javascript">
//change html
</script>

或检查等待它准备好。

window.onload = function() {
    //change html
}