javascript - 如何通过javascript根据变量显示内容?

标签 javascript html

我正在尝试创建一个 HTML 页面,如果选择了月份,正确的日期将显示在表格中。

我有一个函数可以获取今天的月份,并且用户可以在月份之间切换,但我不确定如何获取所有日期。
我不需要显示数字,只需要显示该月各天的适量空表行/表数据。

例如,当选择网页时,今天的月份是 februari,将显示一个包含当前日期的空表:即,将显示 29 个空表 - 如果您决定滚动到另一天。

var month = new Date();
var index = month.getMonth();

var months = ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"];
document.getElementById("todayField").innerHTML = months[month.getMonth()];

function next() {
  var months = ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"];
  var nextMonth = index + 1 > 11 ? 0 : index + 1;
  index = nextMonth
  document.getElementById("todayField").innerHTML = months[nextMonth];
}

function prev() {
  var months = ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"];
  var nextMonth = index - 1 < 0 ? 11 : index - 1;
  index = nextMonth
    // console.log(nextMonth)
  document.getElementById("todayField").innerHTML = months[nextMonth];
}
document.getElementById("prev").addEventListener("click", function() {
  prev();
})
document.getElementById("next").addEventListener("click", function() {
  next();
})
<!DOCTYPE html>
<html>

  <head>
    <meta charset="utf-8">
    <title></title>
  </head>

  <body>
    <p>Click to change day</p>
    <button type="button" name="btnPrev" onclick="prev()">&lt;</button>
    <button type="button" name="btnNext" onclick="next()">&gt;</button>
    <p id="todayField"></p>
    <p>You can find the days below</p>
  </body>

</html>

提前致谢! :)

最佳答案

我将创建一个返回所选月份的天数的函数。 https://stackoverflow.com/a/47188148/3793309有它需要的东西:

function daysInMonth(month, year) {
    var days;
    switch (month) {
        case 1: // Feb, our problem child
            var leapYear = ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
            days = leapYear ? 29 : 28;
            break;
        case 3: case 5: case 8: case 10: 
            days = 30;
            break;
        default: 
            days = 31;
        }
    return days;
},

您可以使用您月份的索引来调用此函数,例如三月:

[...]
var months = ["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober", "November", "December"];
var index = months.indexOf("Mars");
var year = 2018;
var count = daysInMonth(index, year);    

这应该足以满足您的需求。

关于javascript - 如何通过javascript根据变量显示内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48579382/

相关文章:

javascript - 按年份过滤json数据

html - 如何在设置为显示表格单元格的 div 之间添加边距?

javascript - 在 JavaScript 中比较字符串的最佳方法?

javascript - 为句子及其子集设计正则表达式

javascript - 这是写这个的正确格式吗?它不工作

html - HTML 选择框的高度(下拉)

html - 结果显示在两行?

javascript - 如何让点击div1时显示image1,点击div2时image2替换image1?

javascript - 如何导入制表符分隔的 "CSV"

javascript - 在某些索引处剥离/删除数组中的值