4

我正在尝试编写一个非常简单的脚本来将元素的 innerHTML 设置为时间。但是,Javascript 不断抛出“无法设置未定义的属性‘innerHTML’”错误。在调试期间,我已将脚本简化为在元素 (a <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

4 回答 4

9

你没有打电话getElementById,你正在尝试索引它。由于它不是数组并且不公开类似数组的行为,因此结果是undefined. 将您的替换getElementById[spanId]getElementById(spanId).

于 2013-09-13T05:59:29.667 回答
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>

演示:小提琴

于 2013-09-13T05:59:53.083 回答
2

更改[]()

function setClock(spanid){
            var d = new Date();
            document.getElementById(spanid).innerHTML = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds;
        }
于 2013-09-13T05:59:59.770 回答
-2

现在你已经修复了这个,添加这个:

 setInterval(function () {
     function setClock(spanid) {
         var d = new Date();
         document.getElementById(spanid).innerHTML = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds();
     }
     setClock("clock");
 }, 1);

你有一个实际的时钟:D

例子

于 2013-09-13T06:08:02.160 回答