我正在尝试编写一个非常简单的脚本来将元素的innerHTML设置为时间。但是,Javascript不断抛出“无法设置属性'innerHTML'的未定义”错误。在调试过程中,我简化了我的脚本,使其在元素(<span>
)编码后立即运行,因此我知道它应该已经加载了。我也尝试将此脚本作为<body onload=
参数运行 - 同样的错误。我不知道我做错了什么。
<div style="position: fixed; right: 10px; top: 10px; width: auto; font-size: 16pt; border: 2px solid #000000;">
<span id="clock">Loading...</span>
<script type="application/x-javascript">
function setClock(spanid){
var d = new Date();
document.getElementById[spanid].innerHTML = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds;
}
setClock("clock");
</script>
</div>
感谢任何帮助!
答案 0 :(得分:9)
您没有致电getElementById
,而是试图将其编入索引。由于它不是数组并且不暴露类似行星的行为,因此结果为undefined
。将getElementById[spanId]
替换为getElementById(spanId)
。
答案 1 :(得分:2)
[]
中 ()
而不是document.getElementById(spanid)
。 getElementById
是函数,必须使用()
调用它并在其中传递参数。
在()
getSeconds()
<div style="position: fixed; right: 10px; top: 10px; width: auto; font-size: 16pt; border: 2px solid #000000;">
<span id="clock">Loading...</span>
<script type="application/x-javascript">
function setClock(spanid){
var d = new Date();
document.getElementById(spanid).innerHTML = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds();
}
setClock("clock");
</script>
</div>
演示:Fiddle
答案 2 :(得分:2)
将[]
更改为()
:
function setClock(spanid){
var d = new Date();
document.getElementById(spanid).innerHTML = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds;
}
答案 3 :(得分:-3)
现在你有了这个fixxed添加这个:
setInterval(function () {
function setClock(spanid) {
var d = new Date();
document.getElementById(spanid).innerHTML = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds();
}
setClock("clock");
}, 1);
你有一个实际的时钟:D
<强> EXAMPLE 强>