返回列表 回复 发帖

求救,帮我看看JS完全学习手册上的问题

视频上看到光盘上有test.js文件,但是我找了没有,晕倒
所以我看书上自己写了出来,但是运行什么都没有.
帮我看看下面的代码哪里出现了问题

//获得当前时间
var now=new Date();
function showTimes()
{
var grt=new Date("8/08/2008 20:00:00");
now.setTime(now.getTime()+1000);
//获得天数
days=(grt-now) /1000/60/60/24;
dnum=Math.floor(days);
//获得小时
hours=(get-now)/1000/60/60-(24*dunm);
hnum=Math.floor(hours);
if(String(hnum).length==1)
{hnum="0"+hnum;}
//获得分钟
minutes=(grt-now)/1000/60-(24*60*dnum)-(60*hnum);
mnum=Math.floor(minutes);
if(String(mnum).length==1)
(mnum="0"+mnum;)
//获得秒
seconds=(grt-now)/1000-(24*60*60*dnum)-(60*60*hnum)-(60*mnum);
snum=Math.round(seconds);
if(String(snum).length==1)
{snum="0"+snum;}
str="距2008年奥运会开幕还有 "+dnum+"天"+hunm+"时"+mnum+"<span style='margin:0 7px 0 7px'>分</span><font color=red>"+snum+"</font>秒";
document.getElementById("hello").innerHTML=str;
}
setInterval(showTimes,1000);
本帖最后由 somboy 于 2009-7-1 10:10 编辑

将上述代码添加到test.js文件。然后创建test.html,引用test.js文件,HTML文件代码如下所示。
  1. <html>
  2. <head>
  3.    <title>链接外部.JS文件</title>
  4.    <script language="Javascript" type="text/javascript" src="test.js">
  5.    </script>
  6. </head>
  7. <body bgcolor="#FFFFFF";>
  8. <h1 id="hello">
  9. </h1>
  10. </body>
  11. </html>
复制代码
最大愿望:农妇,山泉,有点田.
Baby my love,you are my super star!--------
我按照你的方法,但还是不行,你帮我检查一下代码有没有问题.我是看着书一个一个打出来的,有的人说变量成了全局变量.导致出错.你给看看到底是什么问题.
还有,为什么光盘视频介绍说光盘里有这个JS文件,但我的光盘里面没有.如果你有源代码贴上来看看.
事实证明,是你的输入错误,如下是我调试过的代码,你对着检查一下。
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  5. <title>国庆倒计时</title>
  6. <script type="text/javascript" language="javascript">
  7. // 获得当前时间
  8. var now = new Date();
  9. function ShowTimes()
  10. {
  11. var grt= new Date("10/01/2009 7:00:00");
  12. now.setTime(now.getTime()+1000);
  13. //获得天数
  14. days = (grt - now) / 1000 / 60 / 60 / 24;
  15. dnum = Math.floor(days);
  16. //获得小时
  17. hours = (grt - now) / 1000 / 60 / 60 - (24 * dnum);
  18. hnum = Math.floor(hours);
  19. if(String(hnum).length ==1 )
  20. {hnum = "0" + hnum;}
  21. //获得分钟
  22. minutes = (grt - now) / 1000 /60 - (24 * 60 * dnum) - (60 * hnum);
  23. mnum = Math.floor(minutes);
  24. if(String(mnum).length ==1 )
  25. {mnum = "0" + mnum;}
  26. //获得秒
  27. seconds = (grt - now) / 1000 - (24 * 60 * 60 * dnum) - (60 * 60 * hnum) - (60 * mnum);
  28. snum = Math.round(seconds);

  29. if(String(snum).length ==1 )
  30. {snum = "0" + snum;}
  31. str="距2009年国庆大阅兵还有 " + dnum +" 天 " + hnum +" 时 "+ mnum + "<span style='margin:0 7px 0 7px'>分</span><font color=red>"+ snum+"</font> 秒";
  32. document.getElementById("hello").innerHTML = str;
  33. }
  34. setInterval(ShowTimes,1000);
  35. </script>
  36. </head>
  37. <body>
  38. <h1 id="hello">
  39. </h1>
  40. <hr/>
  41. <a href="http://www.itzcn.com" target="_blank">itZcn | 免费看视频教程,轻松学习计算机技术 | 窗内网</a><br/>
  42. 技术讨论QQ群:33925615
  43. </body>
  44. </html>
复制代码
最大愿望:农妇,山泉,有点田.
Baby my love,you are my super star!--------
代码测试成功了,但是我有个疑问,我买的书JAVASCRIPT完全学习手册,一开始就讲那么复杂,为什么不循环渐进呢,拿这个倒计的来说,里面很多的函数或者语法都没有见过,就直接做列子给学者们看,怎么看得明白呢?
还有自定义函数也没有说就直接做列子,我之前是看了其他教程才有所了解,但是对于别人没有看过的来说;不知道能否接受的了.
以上是个人看法.
document.getElementById("hello").innerHTML = str;

}

setInterval(ShowTimes,1000);
这段代码说明了什么,谁简单说说?

  1. document.getElementById("hello").innerHTML = str;
复制代码
这行语句非常简单,而且很常用,随着你对本书学习的深入,慢慢会理解的。这里我还是逐个简单解释一下吧,希望对你有用
document:JavaScript内置对象,使用它来表示当前正在运行的文档对象即页面
getElementById():是该对象的一个方法,其中的一个参数为字符串,含义为找到字符串在页面中标记的ID值
innerHTML:是标记操作指令,这里指以HTML形式插入,常见的还有innerText

整个一行的作用是,将变量str中的内容以HTML形式插入到页面上ID为hello标记的内容中。
最大愿望:农妇,山泉,有点田.
Baby my love,you are my super star!--------
  1. setInterval(ShowTimes,1000);
复制代码
下面简单说一下这行,后面也有很详细介绍,这里不罗嗦。
setInterval是JavaScript中提供的一个系统函数,作用是一个定时器,即指定的时间到后指定固定操作,单位为毫秒。

这里的作用是,每1000毫秒(1秒)执行一次ShowTimes函数,注意这里函数没有括号。
最大愿望:农妇,山泉,有点田.
Baby my love,you are my super star!--------
学习中。。
返回列表