在页面中添加两个 <select> 标签,用来显示年份和月份;同时添加两个 <ul> 标签,一个用来显示星期,另一个用来显示日期 在 JavaScript 脚本中动态添加年份和月份,获取当前日期的年份

简介: 在页面中添加两个 <select> 标签,用来显示年份和月份;同时添加两个 <ul> 标签,一个用来显示星期,另一个用来显示日期 在 JavaScript 脚本中动态添加年份和月份,获取当前日期的年份

需求说明:


使用 JavaScript 中的 Date 对象,在页面上显示一个万年历。选择不同的年份和月份,在页面中显示当前月的日历

55.png

实现思路:


在页面中添加两个 <select> 标签,用来显示年份和月份;同时添加两个 <ul> 标签,一个用来显示星期,另一个用来显示日期

在 JavaScript 脚本中动态添加年份和月份,获取当前日期的年份和月份,显示到 <select> 标签上

根据 <select> 标签上显示的 value 值,获取当前选中年月的第一天是星期几,并绘制空 <li> 标签

获取当前选中的年月一共有多少天,并绘制对应的 <li> 标签

为两个 <select> 标签设置 onchange 事件


实现代码:


<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title></title>
    <style type="text/css">
      *{
        margin: 0;
        padding: 0;
        list-style: none;
      }
      #calender{
        width: 700px;
        background-color: lightgray;
        margin: 20px auto;
      }
      #month_year{
        width: 700px;
        height: 50px;
        line-height: 50px;
        text-align: center;
      }
      ul li{
        float: left;
        width: 100px;
        height: 50px;
        text-align: center;
        line-height: 50px;
      }
    </style>
  </head>
  <body>
    <div id="calender">
      <div id="month_year">
        <select id="year"></select>年
        <select id="month"></select>月
      </div>
      <ul id="title">
        <li>星期天</li>
        <li>星期一</li>
        <li>星期二</li>
        <li>星期三</li>
        <li>星期四</li>
        <li>星期五</li>
        <li>星期六</li>
      </ul>
      <ul id="dateul"></ul>
    </div>
    <script type="text/javascript">
      var yearSelect=document.getElementById("year");
      var monthSelect=document.getElementById("month");
      var dateul=document.getElementById("dateul");
      function init(){
        for (var year=1990;year<3000;year++) {
          createOption(year,year,yearSelect);
        }
        for (var month=1;month<13;month++) {
          createOption(month,month-1,monthSelect);
        }
        var now=new Date();
        console.log(Date)
        showSelect(now.getFullYear(),now.getMonth());
        showDates();
        yearSelect.onchange=function(){
          showDates();
        }
        monthSelect.onchange=function(){
          showDates();
        }
      }
      function createOption(text,value,parent){
        var option=document.createElement("option");
        option.innerHTML=text;
        option.value=value;
        parent.appendChild(option);
      }
      function showSelect(year,month){
        yearSelect.value=year;
        monthSelect.value=month;
      }
      function showDates(){
        dateul.innerHTML="";
        var year=yearSelect.value;
        var month=monthSelect.value;
        for (var i=0;i<getDays(year,month);i++) {
          createLi("",dateul);
        }
        for (var j=1;j<=getDatesOfMonth(year,month);j++) {
          createLi(j,dateul);
        }
      }
      function getDays(year,month){
        var d=new Date(year,month,1);
        return d.getDay();
      }
      function createLi(text,parent){
        var li=document.createElement("li");
        li.innerHTML=text;
        parent.appendChild(li);
      }
      function getDatesOfMonth(year,month){
        var d=new Date(year,month+1,0);
        return d.getDate();
      }
      init();
    </script>
  </body>
</html>
相关文章
|
1月前
|
JavaScript 前端开发 容器
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
21 0
|
1天前
|
JavaScript 前端开发 NoSQL
【MongoDB 专栏】MongoDB 的 JavaScript 引擎与脚本执行
【5月更文挑战第11天】MongoDB 的 JavaScript 引擎允许在服务器端直接执行脚本,提升效率并实现定制化操作。脚本环境提供独立但与数据库关联的运行空间,引擎负责脚本的解析、编译和执行。执行过程包括脚本提交、解析、编译和执行四个步骤。掌握脚本逻辑设计和 JavaScript 语言特性对于高效利用这一功能至关重要。例如,通过脚本可以计算商品总销售额,增强数据库操作的灵活性。
【MongoDB 专栏】MongoDB 的 JavaScript 引擎与脚本执行
|
3天前
|
JavaScript 前端开发 Shell
JS获取当前时间、及一周之前、一个月之前日期
这段代码展示了JavaScript中获取当前时间以及过去特定日期的方法。包括获取时间戳和格式化日期的函数,例如获取一周、一个月前的日期。另外,还包含了添加随机数的日期时间戳生成和计算两个日期之间差值的示例。
|
4天前
|
JavaScript 前端开发
JS实现网页页面的框架(demo)
JS实现网页页面的框架(demo)
9 1
|
6天前
|
JavaScript 前端开发
js对比日期大小
js对比日期大小
12 1
|
6天前
|
JavaScript UED
js得禁止页面滚动
js得禁止页面滚动
12 1
|
6天前
|
JavaScript 前端开发
js选取页面元素的方法
js选取页面元素的方法
13 2
|
13天前
|
JavaScript
如何在JS中实现修改URL参数而不刷新页面
如何在JS中实现修改URL参数而不刷新页面
|
13天前
|
JavaScript 前端开发
实现一个JavaScript动态日期功能
实现一个JavaScript动态日期功能
|
13天前
|
JavaScript 前端开发
JavaScript 日期对象
JavaScript 日期对象