'无法设置未定义的属性“innerHTML”

时间:2013-09-13 05:57:51

标签: javascript html

我正在尝试编写一个非常简单的脚本来将元素的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>

感谢任何帮助!

4 个答案:

答案 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