如何摆脱Javascript;“未定义”;

如何摆脱Javascript;“未定义”;,javascript,html,css,Javascript,Html,Css,我正在尝试制作一个用Javascript更新的日历,但是底部显示了“undefined”,我看不出有任何错误 下面是javascript: function calendar(month){ var s= new Date(); var year=s.getFullYear(); var wday= s.getDay(); var mday =s.getDate(); var days = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri"

我正在尝试制作一个用Javascript更新的日历,但是底部显示了“undefined”,我看不出有任何错误

下面是javascript:

function calendar(month){
var s= new Date();

var year=s.getFullYear();
var wday= s.getDay();
var mday =s.getDate();


var days = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
 document.write(' <table border=\"1\" bordercolor=\"black\" cellpadding=\"1\" cellspacing=\"0\" width=\"220px\"><h6 style="size:.5em;"><tr>\n');


 for (i=0; i<(days.length); i++) {
     document.write(' <td style=\"background-color: #CCCCCC; text-align: center; width: 33px;padding:2px; \"> <strong> ' + days[i] + ' </strong></td> ');
 }
 var day=1;
 b=6;

 for ( count = 0; count < (b*7); count++) {

         var start= new Date(year,month,day,0,0,0,0);

         var dayarray = new Array();     


          dayarray['mon'] = start.getMonth();// month
          dayarray['yr'] = start.getYear();// year
          dayarray['wday'] = start.getDay();//day of the week
          dayarray['mday'] = start.getDate();// day of the month

         if ((count % 7) == 0) {

                                document.write(' </tr><tr>\n');
                        }

                if ((count < (dayarray['wday'])) || (dayarray['mon']!=month)) {

                        document.write ('<td style=\"background-color: white; text-align: center; width: 33px;padding:2px; \" >&nbsp;</td>\n');

                } else {
                        document.write(' <td style=\"background-color: white; text-align: center; width: 33px;padding:2px; \">' + dayarray['mday'] + '   </td>\n ');
                         day +=1;

                }

}
document.write(' </tr></h6></table>');
}
function next(c){
    document.getElementById(c).style.visibility="visible";
    document.getElementById((c-1)).style.visibility="hidden";

}
功能日历(月){
var s=新日期();
var year=s.getFullYear();
var wday=s.getDay();
var mday=s.getDate();
var天=新数组(“太阳”、“周一”、“周二”、“周三”、“周四”、“周五”、“周六”);
document.write('\n');

对于(i=0;i而言,问题在于围绕每个函数调用的
document.write()

<div id="calendar" style="margin:auto;width:220px;height:182px;" >
            <div id="11" style="position:absolute;left:10px;top:400px;visibility: visible;">
    <script type="text/javascript">var ha=0;d=new Date();calendar(d.getMonth()+ha);</script>
    </div>

var ha=0;d=新日期();日历(d.getMonth()+ha);

从日历调用中删除它们,你就不会得到未定义的代码。

程序员的能力是重用其他代码以节省时间和金钱。为什么不重用互联网上的其他预制代码,而不是重新发明轮子呢?不要将TR包在不合适的html中,浏览器可能会在tryin中做一些非常有趣的事情g来理解你的意思。使用CSS来设计这些片段的样式。为了提高性能,我建议生成一个html字符串,然后使用.innerHTML替换为另一个元素。如果你看到“未定义”的位置发生在源代码中你看到了什么?1.我只是在玩2.谢谢你的帮助,我修复了“sThanks”。要修复第二个问题,我只需将“it”设为全局变量
<div id="calendar" style="margin:auto;width:220px;height:182px;" >
            <div id="11" style="position:absolute;left:10px;top:400px;visibility: visible;">
    <script type="text/javascript">var ha=0;d=new Date();calendar(d.getMonth()+ha);</script>
    </div>