javascript - 无法使用innerHTML 使表行在Javascript 中工作

标签 javascript html html-table innerhtml

我必须使用 Javascript 为学校项目创建一个日历应用程序。该表必须使用innerHTML 属性创建。我已经设法让一切正常工作,但由于某种原因无法弄清楚为什么没有创建日历的行 - 所有的日子都堆积成一长列。我已将标签插入到正确的位置(我认为)。

完整的 JSFiddle 在这里:https://jsfiddle.net/68294kdh/

var date = new Date();
var month = date.getMonth();
var monthName = getMonthText(month);
var year = date.getFullYear();
var firstDay = new Date(year, month, 1);
var lastDay = getLastDayofMonth(month);

$('month_year').innerHTML = monthName + ' ' + year;

var day = 0;

$('calendar').innerHTML += "<tr>";
for(i=0; i<7; i++) {  
    if(i >= firstDay.getDay()) {
        day++;
        $('calendar').innerHTML += '<td>' + day + '</td>';
    } else {
        $('calendar').innerHTML += '<td>' + ' ' + '</td>';
    }
}
$('calendar').innerHTML += "</tr>";

for(i=0; i<4; i++) {
    $('calendar').innerHTML += '<tr>';
    for(j=0; j<7; j++) {
        if(day < lastDay) {
            day++;
            $('calendar').innerHTML += '<td>' + day + '</td>';
        } else {
            $('calendar').innerHTML += '<td>' + ' ' + '</td>';
        }
    }
    $('calendar').innerHTML += '</tr>';
}

最佳答案

您需要同时添加表格的所有 HTML。尝试这样的事情:

window.onload = function () {

    var date = new Date();
    var month = date.getMonth();
    var monthName = getMonthText(month);
    var year = date.getFullYear();
    var firstDay = new Date(year, month, 1);
    var lastDay = getLastDayofMonth(month);

    $('month_year').innerHTML = monthName + ' ' + year;

    var day = 0;
    var htmlString = "";
    var htmlString += '<tr>';
    for(i=0; i<7; i++) {  
        if(i >= firstDay.getDay()) {
            day++;
            htmlString += '<td>' + day + '</td>';
        } else {
            htmlString += '<td>' + ' ' + '</td>';
        }
    }
    htmlString += '</tr>';

    for(i=0; i<4; i++) {
        htmlString += '<tr>';
        for(j=0; j<7; j++) {
            if(day < lastDay) {
                day++;
                htmlString += '<td>' + day + '</td>';
            } else {
               htmlString += '<td>' + ' ' + '</td>';
            }
        }
       htmlString += '</tr>';
    }
    $('calendar').innerHTML+=htmlString;
};

关于javascript - 无法使用innerHTML 使表行在Javascript 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50234994/

相关文章:

css - 使文本字段的位置与按钮的位置匹配+将控件保持在原处

html - 正方形的 CSS 内部颜色

html - 如何使多个左列固定并滚动 HTML 表格中的其余列?

JavaScript:从递归函数返回数组

javascript - 如何让网站导航菜单在设定的秒数后出现?

javascript - 尝试转换为日期时出现 RangeError Invalid Date

javascript - 添加功能无效

javascript - 使用 jQuery 修改选定表格单元格的样式属性?

javascript - h :selectBooleanCheckbox to be rendered to HTML 的值属性的先决条件是什么

javascript - jQuery .height() 不适用于 box-sizing : border-border