ie上运行为什么没有效果

来源:7-23 编程练习

qq_慕虎6366630

2016-04-26 23:46

为什么在ie上看不到平均成绩?而显示的是undefined

我的代码是这样的:

<!DOCTYPE  HTML>

<html >

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>系好安全带,准备启航</title>


<script type="text/javascript">

var Udate=new Date()

var week= ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];

document.write(Udate.getFullYear()+"年"+(Udate.getMonth()+1)+"月"+Udate.getDate()+"日 "+week[Udate.getDay()]+"--"+"班级总分为:"+age+"<br />");


 var scoreStr ="小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";

 var name1=scoreStr.split(";");

 var sum=0

 for (var i=0;i<name1.length;i++){

  sum = sum + parseInt(name1[i].substr(name1.indexOf(":")+1));

 }

 var age=sum/name1.length;


</script>

</head>

<body>

</body>

</html>


写回答 关注

5回答

  • 慕娘9282524
    2016-04-27 11:36:22
    已采纳

    你一共有两处错误  

    第一  把  document.write(Udate.getFullYear()+"年"+(Udate.getMonth()+1)+"月"+Udate.getDate()+"日 "+week[Udate.getDay()]+"--"+"班级总分为:"+age+"<br />");  这段 挪到</script>之前 

    出现 undefined的原因就是这个 

    因为把他写在前面   程序加载他时,变量age还没定义呢   就会输出  undefined

    第二     parseInt(name1[i].substr(name1.indexOf(":")+1)  这句中 

     把第二个name1  改为 name1[i]   要不的话  你输出的不会是数字


    qq_慕虎6...

    谢谢,问题解决了

    2016-05-09 19:06:40

    共 1 条回复 >

  • 慕粉3193552
    2016-04-27 12:50:24

    网页中的javaScript脚本代码往往需要在文档加载完成后才能够去执行,否则可能导致无法获取对象的情况,而且javascript执行顺序从上到下依次解析的。此时,你可以document.write(Udate.getFullYear()+"年"+(Udate.getMonth()+1)+"月"+Udate.getDate()+"日 "+week[Udate.getDay()]+"--"+"班级总分为:"+age+"<br />");  这段 挪到放在网页的底端,这样在运行脚本代码的时候,可以确保要操作的对象已经加载完成;你也可以通过window.onload来执行脚本代码

  • 懒懒喵3254677
    2016-04-27 00:29:19

    javascript执行顺序从上到下依次解析的,你的输出语句执行的时候变量age并没有定义所以会出现错误,另外在计算sum的for循环中, parseInt(name1[i].substr(name1.indexOf(":")+1));这句代码substr里面的name1应该改为name1[i],因为你的name1是一个数组,而你要取的是它的第i个元素。

  • qq_慕虎6366630
    2016-04-27 00:03:22

    啊,虽然找出来了一个错误,但还是错的

  • 会跑的码农
    2016-04-26 23:57:09

    不支持ie,兼容性问题

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题