我正在尝试简单地更新span标记,使用以下方法...
<script type="text/javascript">
document.getElementById("myspan").innerHTML="newtext";
</script>
<span id="myspan"> hereismytext </span>
但我收到以下错误:
document.getElementById(“myspan”)为空
关于导致这种情况的任何想法?
干杯
富
答案 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
}