使用JavaScript(计划)在表标记中添加数组

时间:2016-07-17 03:53:09

标签: javascript jquery date schedule

我是JavaScript的新手,所以我很抱歉提前有任何误解。我有一些数组,但我不知道如何按照我想要的顺序将它们放在一个表中。

我希望第一列填充日期,其他每一天填充星期几。第二列始终需要是当天,其他单元格必须为空。这是迄今为止的代码:

function GetDates(startDate, daysToAdd) {
    var aryDates = [];

    for (var i = 0; i <= daysToAdd; i++) {
        var currentDate = new Date();
        currentDate.setDate(startDate.getDate() + i);
        aryDates.push(DayAsString(currentDate.getDay()) + ", " + currentDate.getDate() + " " + MonthAsString(currentDate.getMonth()) + " " + currentDate.getFullYear());
    }

    return aryDates;
}

function MonthAsString(monthIndex) {
    var d = new Date();
    var month = new Array();
    month[0] = "January";
    month[1] = "February";
    month[2] = "March";
    month[3] = "April";
    month[4] = "May";
    month[5] = "June";
    month[6] = "July";
    month[7] = "August";
    month[8] = "September";
    month[9] = "October";
    month[10] = "November";
    month[11] = "December";

    return month[monthIndex];
}

function DayAsString(dayIndex) {
    var weekdays = new Array(6);
    weekdays[0] = "Sunday";
    weekdays[1] = "Monday";
    weekdays[2] = "Tuesday";
    weekdays[3] = "Wednesday";
    weekdays[4] = "Thursday";
    weekdays[5] = "Friday";
    weekdays[6] = "Saturday";

    return weekdays[dayIndex];
}

var dayHours = ['08:00', '08:30', '09:00', '09:30', '10:00', '10:30', '11:00', '11:30', '12:00', '12:30', '13:00', '13:30', '14:00', '14:30', '15:00', '15:30', '16:00', '16:30', ]
var startDate = new Date();
var aryDates = GetDates(startDate, 7);

$('#example').html(aryDates);

1 个答案:

答案 0 :(得分:0)

您可以直接在JavaScript中创建所需的HTML元素,因为没有例程。

循环的开头,您可以创建一个如下所示的表格行:

var $tr = $('<tr></tr>');

然后将您的单元格添加到与此类似的行:

var $td = $('<td>' + value + '</td>')
$tr.append($td);

您必须为要显示的每个列执行此操作 - (只需将value替换为您想要的值)。因此,您创建一个新单元格,将其附加到表格行$tr。在该循环结束时,您将此$tr附加到您的表格中。

$('#example').append($tr);

假设您的表具有id示例。

要实现图片中的内容:

首先:创建表格行,循环日期,在其中创建表格单元格,附加到表格行,附加到表格

var $tr = $('<tr></tr>');
$tr.append($('<td>hours</td>'));
aryDates.forEach(function(date) {
  var $td = $('<td>' + date + '</td>');
  $tr.append($td);
});
$('#example').append($tr);

第二个:循环数小时,创建td,将其附加到tr,然后在该循​​环内,创建另一个包含所需空单元格的数字,并且只需将空td附加到该表行,毕竟你把它附加到表

dayHours.forEach(function(hour) {
  var $tr = $('<tr></tr>');
  var $td = $('<td>' + hour + '</td>');
  $tr.append($td);
  for(var i = 0; i < aryDates.length; i++) {
    $tr.append('<td></td>');
  } 
  $('#example').append($tr);
});

可以帮助您的类似问题是:

insert elements from array to table in jquery/js

Populate table from array using JQuery

或者您可以查看自动更新DOM的 Angular React.js 等框架。