javascript - 如何摆脱 Javascript "Undefined"

标签 javascript html css

我正在尝试制作一个使用 Javascript 更新的日历,但“未定义”显示在底部,我看不出任何错误。

这是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";

}

和 Html:

<div style="display: block;">
                <img src="style/rightArrow.jpg" onclick="var it=12;next(it);it++;"/>


        <br/>
        <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();document.write(calendar(d.getMonth()+ha));</script>
    </div>

    <div id="12" style="position:absolute;left:10px;top:400px;visibility:hidden;">
    <script type="text/javascript">var ha=1;d=new Date();document.write(calendar(d.getMonth()+ha));</script>
    </div>

    <div id="13" style="position:absolute;left:10px;top:400px;visibility:hidden;"> 
    <script type="text/javascript">var ha=2;d=new Date();document.write(calendar(d.getMonth()+ha));</script>

    </div>
    </div>
    </div>

第二个问题:

为什么日历只提前一个月?

最佳答案

问题在于您围绕每个函数调用的 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>

将它们从对日历的调用周围移除,您就不会得到未定义的。 http://jsfiddle.net/qXARb/2/

关于javascript - 如何摆脱 Javascript "Undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7842128/

相关文章:

javascript - 如何在下拉列表中显示时区偏移

javascript - 如何在javascript中将数组对象更改为嵌套对象

javascript - 通过jquery清除浏览器保存的密码

javascript - 使用 HTML 按钮调用 JavaScript 函数

html - 谨慎创建外部站点代码

javascript - 如何将 base64 转换为 html 文件?

javascript - jquery获取嵌套元素的方法

javascript settimeout 执行代码花费的时间比预期要长

ng 样式的 HTML 十六进制颜色代码不起作用

php - 如何通过php从数据库中获取特定字段