javascript - 基本的 HTML 日历搞砸了
问题描述
这是一个基本的日历项目,我想要按钮来度过几个月。
该按钮适用,console.log
因此我的匿名函数一定有问题
const today = new Date();
const calMonth = today.getMonth();
document.querySelector("button").addEventListener("click", event => {calMonth--});
CodePen 的全部内容:
https ://codepen.io/CoCedric/pen/KGNWgy
解决方案
单击上一个/下一个按钮的代码仅设置calMonth
. 此外,在该注释中,calMonth
被声明为 a const
,这意味着您无法更改其值。
以下是您可以执行的操作:
- 更改
const
为let
将设置 getHead 的 innerHTML 并将日期呈现到函数中的代码包装起来。
function renderCalendar() { getHead.innerHTML = monthFran[calMonth]; for (let i in allDays) { let printedDay = i - calDate.getDay(); allDays[i].innerHTML = (printedDay < 1 || printedDay > monthEnd[calMonth]) ? "" : printedDay; } }
当您单击 prev/next 按钮以及代码末尾时调用该函数以呈现日期。
document.querySelectorAll('button').forEach((btn) => { btn.addEventListener('click', (e) => { if (e.target.classList.contains('bak')) { calMonth--; } else { calMonth++; } renderCalendar(); }); }); renderCalendar();
当然,该解决方案在任何方面都不是完美/优化的,只是让您知道您可以做什么。
推荐阅读
- python - 函数未显式呈现的优化问题
- jenkins - 如何添加jenkinsfile参数值
- sql - 每个部门只选择一名员工
- c - 为什么这个元组->字符串转换会触发零星的内存重叠异常
- intersystems-cache - MUMPS 地址验证
- python - 评估表达式
- apache-spark - 如何验证 S3 上的 parquet 文件是否已排序
- c - 如何在 32 位汇编中编译?
- python - Python测试列表中的每个元素到数据框中的行元素,产生布尔数据框
- node.js - Express:使用客户端的 IP 地址向 Google Cloud Functions 创建新请求