jQuery实现简单日历效果

下面为大家详细讲解如何使用jQuery实现简单日历效果。

1. 准备工作

在开始之前,需要准备好以下的工作:

引入jQuery库

在页面中引入jQuery库,可以使用cdn加速库的方式,例如:

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

创建日历容器

在HTML中创建日历容器,例如:

<div id="calendar"></div>

2. 实现日历功能

步骤如下:

2.1 获取当月天数

使用JavaScript的Date对象获取当前月份的天数,代码如下:

var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
var days = new Date(year, month, 0).getDate();

2.2 生成日历表格

根据获取到的当月天数,生成对应的日历表格,代码如下:

var tableHtml = "<table><tr>";

for (var i = 1; i <= days; i++) {
  // 判断日期是否为星期天,如果是,则换行
  var weekDay = new Date(year + '-' + month + '-' + i).getDay();
  if (weekDay == 0) {
    tableHtml += "</tr><tr>";
  }

  // 生成单元格,把日期输出到单元格中
  tableHtml += "<td>" + i + "</td>";
}

tableHtml += "</tr></table>";

2.3 将日历表格渲染到页面中

通过jQuery的append方法将生成的日历表格渲染到页面中,代码如下:

$('#calendar').append(tableHtml);

3. 完整代码示例

下面是一个完整的使用jQuery实现简单日历效果的示例代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>jQuery实现简单日历效果</title>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <style>
    table {
      border-collapse: collapse;
    }
    td {
      border: 1px solid #ccc;
      width: 50px;
      height: 50px;
      text-align: center;
    }
  </style>
</head>
<body>
  <div id="calendar"></div>
  <script>
    $(function() {
      var date = new Date();
      var year = date.getFullYear();
      var month = date.getMonth() + 1;
      var days = new Date(year, month, 0).getDate();

      var tableHtml = "<table><tr>";

      for (var i = 1; i <= days; i++) {
        var weekDay = new Date(year + '-' + month + '-' + i).getDay();
        if (weekDay == 0) {
          tableHtml += "</tr><tr>";
        }
        tableHtml += "<td>" + i + "</td>";
      }

      tableHtml += "</tr></table>";

      $('#calendar').append(tableHtml);
    });
  </script>
</body>
</html>

4. 示例说明

下面是两个使用jQuery实现简单日历效果的示例说明。

示例1

实现一个简单的日期选择器。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>日期选择器示例</title>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <style>
    table {
      border-collapse: collapse;
    }
    td {
      border: 1px solid #ccc;
      width: 50px;
      height: 50px;
      text-align: center;
      cursor: pointer;
    }
    td:hover {
      background-color: #ccc;
    }
    .active {
      background-color: #ccc;
    }
  </style>
</head>
<body>
  <input type="text" id="datepicker">
  <div id="calendar"></div>

  <script>
    $(function() {
      var date = new Date();
      var year = date.getFullYear();
      var month = date.getMonth() + 1;
      var days = new Date(year, month, 0).getDate();

      var tableHtml = "<table><tr>";

      for (var i = 1; i <= days; i++) {
        var weekDay = new Date(year + '-' + month + '-' + i).getDay();
        if (weekDay == 0) {
          tableHtml += "</tr><tr>";
        }
        tableHtml += "<td>" + i + "</td>";
      }

      tableHtml += "</tr></table>";

      $('#calendar').append(tableHtml);

      $('#calendar td').click(function() {
        $('#calendar td').removeClass('active');
        $(this).addClass('active');
        var dateValue = year + '-' + month + '-' + $(this).html();
        $('#datepicker').val(dateValue);
      });
    });
  </script>
</body>
</html>

在该示例中,新增了一个输入框用于选择日期。点击输入框会弹出日历,点击日历中的日期会将所选的日期显示在输入框中。

示例2

在一个博客网站中,展示当月的文章发布日期。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>博客文章列表示例</title>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <style>
    table {
      border-collapse: collapse;
    }
    td {
      border: 1px solid #ccc;
      width: 50px;
      height: 50px;
      text-align: center;
    }
    .today {
      background-color: #ccc;
    }
    .post-date {
      margin-right: 5px;
    }
  </style>
</head>
<body>
  <h1>2021年5月文章列表</h1>
  <table>
    <thead>
      <tr>
        <th>日期</th>
        <th>标题</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="post-date">05-01</span></td>
        <td><a href="#">文章标题1</a></td>
      </tr>
      <tr>
        <td><span class="post-date">05-08</span></td>
        <td><a href="#">文章标题2</a></td>
      </tr>
      <tr>
        <td><span class="post-date">05-15</span></td>
        <td><a href="#">文章标题3</a></td>
      </tr>
      <tr>
        <td><span class="post-date today">05-22</span></td>
        <td><a href="#">文章标题4</a></td>
      </tr>
      <tr>
        <td><span class="post-date">05-29</span></td>
        <td><a href="#">文章标题5</a></td>
      </tr>
    </tbody>
  </table>

  <script>
    $(function() {
      var date = new Date();
      var year = date.getFullYear();
      var month = date.getMonth() + 1;
      var days = new Date(year, month, 0).getDate();

      var tableHtml = "<table><tr>";

      for (var i = 1; i <= days; i++) {
        var weekDay = new Date(year + '-' + month + '-' + i).getDay();
        if (weekDay == 0) {
          tableHtml += "</tr><tr>";
        }
        var className = "";
        if (i == date.getDate()) {
          className = "today";
        }
        tableHtml += '<td><span class="post-date ' + className + '">' + month + '-' + i + '</span></td>';
      }

      tableHtml += "</tr></table>";

      $('h1').after(tableHtml);
    });
  </script>
</body>
</html>

在该示例中,根据当前月份生成了一个日历表格,每个单元格中显示当天日期的日期和文章列表中的标题。如果当天是当前浏览的月份,则该单元格会被标记为今天。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery实现简单日历效果 - Python技术站

(0)
上一篇 2023年5月29日
下一篇 2023年5月29日

相关文章

  • jQWidgets jqxGrid过滤属性

    以下是关于“jQWidgets jqxGrid过滤属性”的完整攻略,包含两个示例说明: 简介 jqxGrid 控件的过滤属性用于在表格中筛选数据。通过设置过滤属性,可以根据指定的条件过滤表格中的数据。该属性可以用于控制表格的交互效果。 完整攻略 下面是 jqxGrid 控件过滤属性的完整攻略: 设置过滤属性 $("#jqxgrid").j…

    jquery 2023年5月10日
    00
  • jQWidgets jqxButton toggled属性

    jQWidgets jqxButton toggled属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxButton是其中之一。本文将详细介绍jqxButton的toggled属性,包括定义、语法和示例。 toggled属性的定义 jqxButton的toggled属性用于获取或设置按钮的状态。当按钮处于激活状态…

    jquery 2023年5月10日
    00
  • jQuery判断对象是否存在的方法

    当我们使用jQuery开发web应用时,常常需要判断某个对象是否存在,以便进行相应的操作。下面是几种常用的判断jQuery对象是否存在的方法: 1.使用.length属性 可以通过jQuery对象的length属性来判断其是否存在。当调用jQuery选择器时,如果无法找到相应的元素,length属性将为0,反之则为一个大于0的整数。 if ($("…

    jquery 2023年5月28日
    00
  • jQuery prev() 和 prevAll() 示例

    以下是关于jQuery中prev()和prevAll()方法的完整攻略: 什么是prev()和prevAll()方法? prev()方法用于选择匹配元素集合中每个元素前一个兄弟素,而prevAll()方法用于匹配元素集合中每个元素的所有前面的兄弟元素。 如何使用prev()和prevAll()方法? 可以使用以下代码来使用prev()和prevAll()方法…

    jquery 2023年5月12日
    00
  • 如何从一个函数中禁用jQuery对话框中的一个按钮

    下面我将给出一份完整的攻略,以帮助禁用jQuery对话框中的一个按钮。 需求分析 首先需要确定需求,即需求如下:从一个函数中禁用jQuery对话框中的一个按钮。 解决方法 要实现这个需求,需要明确几个步骤: 获取需要禁用的按钮 禁用按钮 在需要的时候启用按钮 获取需要禁用的按钮 一般来说,我们可以在对话框显示之前获取要禁用的按钮。例如: $("#d…

    jquery 2023年5月12日
    00
  • Jquery实现跨域异步上传文件总结

    下面是关于“Jquery实现跨域异步上传文件”的详细攻略。 什么是跨域及其实现原理 首先,我们要了解下什么是跨域(Cross-domain),顾名思义就是不同域名或不同端口之间的数据或请求传输。 在HTTP协议中,浏览器工作的原理是在同源策略(Same-Origin Policy)下,只能发送同一源下的请求(同一协议、同一IP地址、同一端口号),而不能跨域发…

    jquery 2023年5月27日
    00
  • jQWidgets jqxNavigationBar expandAt()方法

    以下是关于 jQWidgets jqxNavigationBar 组件中 expandAt() 方法的详细攻略。 jQWidgets jqxNavigationBar expandAt() 方法 jQWidgets jqxNavigationBar 的 expandAt() 方法用于展开导航栏中指定位置的项。 语法 // 展开导航栏中指定位置的项 $(‘#n…

    jquery 2023年5月12日
    00
  • easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码

    easyui datebox 时间限制 如果需要限制easyui datebox可选择的时间范围,可以使用min和max属性或者disabledDates和disabledDays属性达到目的。 min和max属性: <!– 输入框前端代码 –> <input id="DateBox" class="eas…

    jquery 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部