document.getElementById不起作用

时间:2013-08-17 13:25:06

标签: javascript

如果我在没有代码1的情况下编写代码2 ,代码就可以工作,它会显示“aaaaa”。

但如果我编写代码1 代码2,则代码不起作用。它没有向我展示“vvvaa”,而是向我显示任何东西(不是“aaaaa”而不是“vvvaa”)。

为什么不起作用? (document.getElementById不会将信息发送到<div>。)

代码1:

document.getElementById('na').innerHTML = "vvvaa";

代码2:

document.write("<div id='na'> aaaaa </div>");

完整代码: (页面上唯一的内容)

<script>
    function timeago(time) {
        var new_date = new Date();
        var time_ago = Math.floor(new_date.getTime()/1000-time);
        var d = Math.floor(time_ago/24/60/60);
        var h = Math.floor((time_ago-d*24/60/60)/60/60);        
        var m = Math.floor((time_ago-d*24/60/60-h*60/60)/60);
        var s = Math.floor(time_ago-d*24/60/60-h*60/60-m*60);
        document.write(d+"d - "+h+"h - "+m+"m - "+s+"s");
        document.getElementById('na').innerHTML="vvvaa";
        // setTimeout( function(){ timeago(time); }, 2000 ); 
    }
    timeago('1376743609');
    document.write("<div id='na'> aaaaa </div>");
</script>

4 个答案:

答案 0 :(得分:4)

订单很重要。在将元素'na'放入文档之前,您无法访问它。

您自然需要先将元素添加到文档中。如果已完成,您可以通过getElementById()等功能访问它。

此...

document.write("<div id='na'></div>");
document.getElementById('na').innerHTML = "vvvaa";

......会奏效。

您可以将此快捷方式设为:

document.write("<div id='na'>vvvaa</div>");

答案 1 :(得分:0)

我假设您的控制台说document.getElementById('na')未定义且innerHTML不是未定义的方法。这是因为调用代码时没有这样的元素。致命错误将阻止任何进一步的javascript执行,在本例中为document.write

在尝试通过document.getElementById

访问该文档之前,先将该元素添加到您的文档中

答案 2 :(得分:0)

除非确实存在,否则您无法访问文本。在您的情况下,您尝试访问该时尚不存在的文本。订单很重要。代码2应该先行,代码1应该是最后的。首先编写文本,然后访问它。

答案 3 :(得分:0)

document.write只能在timeago()之后传递,因此<div>上不存在document.write,因此请在使用<script> function timeago(time) { var new_date = new Date(); var time_ago = Math.floor(new_date.getTime()/1000-time); var d = Math.floor(time_ago/24/60/60); var h = Math.floor((time_ago-d*24/60/60)/60/60); var m = Math.floor((time_ago-d*24/60/60-h*60/60)/60); var s = Math.floor(time_ago-d*24/60/60-h*60/60-m*60); document.write(d+"d - "+h+"h - "+m+"m - "+s+"s"); document.getElementById('na').innerHTML="vvvaa"; // setTimeout( function(){ timeago(time); }, 2000 ); } document.write("<div id='na'> aaaaa </div>"); timeago('1376743609'); </script> 后调用“timerago”尝试:

{{1}}