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