0

我正在尝试使用以下方法简单地更新跨度标签...

<script type="text/javascript">

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

</script>

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

但我收到以下错误:

document.getElementById("myspan") 为空

关于造成这种情况的任何想法?

干杯

富有的

4

3 回答 3

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>
于 2012-09-17T12:11:09.220 回答
0

尝试将您的 JavaScript 代码放入一个函数中,并在页面加载处理程序中调用它 - 就目前情况而言,如果您的脚本标签位于页面顶部,那么 DOM(因此您的跨度)将不存在时间你的代码被执行:

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

<body onload="loaded()">
    ...
于 2012-09-17T12:11:53.400 回答
0

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

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

或检查等到它准备好。

window.onload = function() {
    //change html
}
于 2012-09-17T12:13:14.693 回答