jQuery实现简单日历效果

yizhihongxing

下面为大家详细讲解如何使用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日

相关文章

  • jQuery UI Accordion enable()方法

    jQuery UI 的 Accordion 组件提供了一个 enable() 方法,该方法用于启用或禁用 Accordion 中的面板。在本教程中,我们将详细介绍 Accordion 的 enable() 方法的使用方法。 enable() 方法基本语法如下: $( ".selector" ).accordion( "enabl…

    jquery 2023年5月11日
    00
  • JQuery结合CSS操作打印样式的方法

    下面是详细讲解“JQuery结合CSS操作打印样式的方法”的完整攻略。 什么是“JQuery结合CSS操作打印样式的方法” JQuery结合CSS操作打印样式的方法是使用JQuery库中的CSS方法,对网页中的元素进行样式的操作,从而实现在打印时改变元素的显示效果。 如何使用JQuery结合CSS操作打印样式的方法 下面是JQuery结合CSS操作打印样式的…

    jquery 2023年5月28日
    00
  • jquery浏览器滚动加载技术实现方案

    jQuery浏览器滚动加载技术实现方案 1. 概述 随着移动设备的飞速发展,用户对于网页速度和性能的要求也越来越高,如何优化 Web 应用的性能成为了一个非常关键的问题。其中,懒加载技术是一种非常有用的优化技术,可以大大节省页面加载时间,提升用户体验。 所谓懒加载,就是在网页滚动到某个元素时,才针对这个元素请求数据,避免了一次性获取所有数据的浪费。这种技术可…

    jquery 2023年5月27日
    00
  • jQWidgets jqxScheduler date属性

    jQWidgets jqxScheduler 是一款强大的日程管理组件。其中,date 属性是指该组件所显示的时间范围。本文将为您详细讲解 jQWidgets jqxScheduler 的 date 属性的用法及示例。 基础用法 使用 date 属性,可以设置 jQWidgets jqxScheduler 组件的时间范围。date 属性通常需要传递一个 Da…

    jquery 2023年5月11日
    00
  • jQWidgets jqxWindow maxHeight属性

    关于jQWidgets jqxWindow组件的maxHeight属性,我来给您详细讲解一下。 1. maxHeight属性是什么 maxHeight是jQWidgets jqxWindow组件的一个属性,它是一个用来指定窗口最大高度的数字。当窗口高度超过最大高度时,会出现滚动条,避免窗口高度超出屏幕而无法显示。 具体属性定义如下: //HTML <d…

    jquery 2023年5月12日
    00
  • jquery序列化form表单使用ajax提交后处理返回的json数据

    下面详细讲解一下“jquery序列化form表单使用ajax提交后处理返回的json数据”的完整攻略。该攻略主要分为以下几个步骤: 序列化表单数据 发送Ajax请求 处理返回的JSON数据 下面将详细解释每一步的具体操作。 1. 序列化表单数据 在发送表单数据前需要将表单数据序列化成URL编码的字符串,方便后续的数据传输。jQuery提供了serialize…

    jquery 2023年5月27日
    00
  • jQWidgets jqxTimePicker format属性

    以下是关于 jQWidgets jqxTimePicker 组件中 format 属性的详细攻略。 jQWidgets jqxTimePicker format 属性 jQWidgets jqxTimePicker 组件的 format 属性用于设置时间选择器中显示的格式。可以使用该属性设置任何必要的时间格式,例如 “hh:mm tt” 或 “HH:mm:s…

    jquery 2023年5月11日
    00
  • Semantic UI弹出窗口

    下面是详细讲解“Semantic UI弹出窗口”的完整攻略。 1. 概述 Semantic UI是一个现代化的UI框架,提供了丰富的UI组件和交互效果。其中,弹出窗口是一个常见的UI组件,它可以被用来展示一些附加信息、提醒用户进行操作等等。在Semantic UI中,我们可以使用内置的弹出窗口模块来快速创建弹出窗口。 2. 安装 在使用Semantic UI…

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