-1

如果我在没有代码 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

4 回答 4

4

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

您自然需要先将元素添加到文档中。如果完成了,您可以通过getElementById().

这个...

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

... 将工作。

您可以将其简化为:

document.write("<div id='na'>vvvaa</div>");
于 2013-08-17T13:27:50.503 回答
0

我假设你的控制台说那document.getElementById('na')是未定义的,innerHTML不是未定义的方法。这是由于调用代码时没有这样的元素造成的。致命错误将停止任何进一步的 javascript 执行,在这种情况下,您的document.write.

先将元素添加到您的文档中,然后再尝试通过以下方式访问它document.getElementById

于 2013-08-17T13:29:07.837 回答
0

除非它确实存在,否则您无法访问一段文本。在您的情况下,您正在尝试访问当时甚至不存在的文本。顺序很重要。代码 2 应该在前,代码 1 应该在最后。首先编写文本,然后访问它。

于 2013-08-17T13:29:34.663 回答
0

唯一的document.write被传递之后timeago()因此不存在于 上<div>,所以在使用 Try 之后只需调用“timerago” 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>
于 2013-08-17T13:35:52.777 回答