我正在尝试使用以下方法简单地更新跨度标签...
<script type="text/javascript">
document.getElementById("myspan").innerHTML="newtext";
</script>
<span id="myspan"> hereismytext </span>
但我收到以下错误:
document.getElementById("myspan") 为空
关于造成这种情况的任何想法?
干杯
富有的
我正在尝试使用以下方法简单地更新跨度标签...
<script type="text/javascript">
document.getElementById("myspan").innerHTML="newtext";
</script>
<span id="myspan"> hereismytext </span>
但我收到以下错误:
document.getElementById("myspan") 为空
关于造成这种情况的任何想法?
干杯
富有的
那是因为您需要在元素之后添加该 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>
尝试将您的 JavaScript 代码放入一个函数中,并在页面加载处理程序中调用它 - 就目前情况而言,如果您的脚本标签位于页面顶部,那么 DOM(因此您的跨度)将不存在时间你的代码被执行:
<script type="text/javascript">
funcion loaded(){
document.getElementById("myspan").innerHTML="newtext";
}
</script>
<body onload="loaded()">
...
当你与 DOM 通信时,你需要确保它存在/准备好被修改。在您的示例中,您正在更改具有 id 的元素myspan
在它存在之前(javascript 在 html 之前运行),因此浏览器找不到它。你要么需要把它放在:
<!-- HTML -->
<script type="text/javascript">
//change html
</script>
或检查等到它准备好。
window.onload = function() {
//change html
}