JS+HTML:创建一个日历;画面初期时,显示系统当月的日历。 输入年或月,显示对应月的日历。
时间: 2024-02-09 07:08:58 浏览: 101
js+html制作简单日历的方法
下面是一个实现在画面初期显示系统当月日历,以及根据用户输入显示对应月日历的JS+HTML代码:
HTML部分:
```html
<label>年:</label>
<input id="year" type="number" min="1900" max="2100" value="" />
<label>月:</label>
<input id="month" type="number" min="1" max="12" value="" />
<button onclick="showCalendar()">显示</button>
<div id="calendar"></div>
```
JS部分:
```javascript
function createCalendar(year, month) {
// 获取指定年月的第天
var firstDay = new Date(year, month - 1, 1);
// 获取指定年月的最后一天
var lastDay = new Date(year, month, 0);
// 创建一个表格元素
var table = document.createElement('table');
// 创建表格的表头
var thead = document.createElement('thead');
var tr = document.createElement('tr');
var daysOfWeek = ['日', '一', '二', '三', '四', '五', '六'];
for (var i = 0; i < daysOfWeek.length; i++) {
var th = document.createElement('th');
th.textContent = daysOfWeek[i];
tr.appendChild(th);
}
thead.appendChild(tr);
table.appendChild(thead);
// 创建表格的表身
var tbody = document.createElement('tbody');
var tr = document.createElement('tr');
var dayOfWeek = firstDay.getDay();
for (var i = 0; i < dayOfWeek; i++) {
var td = document.createElement('td');
tr.appendChild(td);
}
var currentDate = 1;
while (currentDate <= lastDay.getDate()) {
if (dayOfWeek == 7) {
tbody.appendChild(tr);
tr = document.createElement('tr');
dayOfWeek = 0;
}
var td = document.createElement('td');
td.textContent = currentDate;
tr.appendChild(td);
currentDate++;
dayOfWeek++;
}
tbody.appendChild(tr);
table.appendChild(tbody);
// 返回表格元素
return table;
}
function showCalendar() {
var year = document.getElementById('year').value;
var month = document.getElementById('month').value;
if (!year) {
year = new Date().getFullYear();
}
if (!month) {
month = new Date().getMonth() + 1;
}
var calendar = createCalendar(year, month);
var container = document.getElementById('calendar');
container.innerHTML = '';
container.appendChild(calendar);
}
window.onload = function() {
showCalendar();
};
```
这段代码首先定义了一个 `createCalendar` 函数,该函数接收两个参数:年份和月份,返回一个表格元素,该表格元素包含指定年月的日历。
然后定义了一个 `showCalendar` 函数,该函数从输入框中获取年份和月份,如果没有输入,则默认为系统当前的年月。然后使用 `createCalendar` 函数创建一个日历,并将其添加到指定的容器元素中。
最后,在页面加载后调用 `showCalendar` 函数,以显示当前月的日历。
注意,为了方便起见,这里使用了 `window.onload` 事件处理程序,以确保页面完全加载后再显示日历。实际应用中,可能需要使用其他方式来处理这个问题。
阅读全文