为什么使用“num”变量时,日历表无法正常显示日期?

为什么使用“num”变量时,日历表无法正常显示日期?

疑问:为什么使用“num”变量时出现问题?

问题描述:

在通过点击“∨”按钮增加日历表时,希望使用“num”变量来替换图片中的数字,但这样操作后会出现异常,导致日期无法正常显示。

原因分析:

初始化执行时,“num”为未定义,因此“month_now + 1 + num”的值为NaN,导致页面不显示日期。

解决方案:

目前的做法是点击按钮时仅让“num”每次增加1,但需要重新执行拼接日期的代码才能更新页面上的日期。

修改后的代码段:

在以下代码块中,加入了对拼接日期代码的重新执行:

//获取‘∨’的点击次数
$('<button class=add_cla>∨</button>').appendTo('body')
$('.add_cla').addClass('add_sty')
function add_month(callback) {
    var num_next = 0;
    $('.add_cla').click(function () {
        callback(num_next++)
        // 拼接日期代码执行
        var html = '<div class="box">';

        //获取每个月份共有多少天
        var max = new Date(year, m, 0).getDate();
        html += '<tr>';//开始<tr 标签
        for (d = 1; d <= max; d++) {
            if (w && d == 1) {//如果该月的第1天不是星期日,则填充空白
                html += '<td colspan ="' + w + '" > </td>'; //变量加入字符串
            }
            html += '<td class="td_event" id=td_id' + d + '>' + d + '</td>';
            if (w == 6 && d != max) {//如果星期六不是该月的最后一天,则换行
                html += '</tr><tr>';
            } else if (d == max) {//该月的最后一天,闭合</tr 标签
                html += '</tr>';
            }
            w = (w + 1 > 6) ? 0 : w + 1;
        }
       ......

通过重新执行拼接日期的代码,每次“num”变化时都会正确更新页面上的日期。

以上就是为什么使用“num”变量时,日历表无法正常显示日期?的详细内容,更多请关注其它相关文章!