
首先,我们需要一个基础的html <select> 元素作为年份选择器的容器。为了方便javascript对其进行操作,我们为其添加一个唯一的 id 属性。
<div class="col-12">
<select class="form-select bg-light border-0" id="yearSelect" style="height: 55px;">
<option value="" selected disabled>请选择年份</option>
</select>
</div>在这个结构中:
核心思路是:
为了简化DOM操作,我们将使用jQuery库。
以下是完整的HTML文件和JavaScript代码,展示了如何动态生成当前年份前5年到后5年的年份选项。
立即学习“Java免费学习笔记(深入)”;
index.html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>动态年份选择器</title>
<!-- 引入 Bootstrap CSS (可选,仅为样式美观) -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- 引入 jQuery 库 -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
</head>
<body>
<div class="container mt-5">
<h1>动态年份选择器示例</h1>
<div class="row">
<div class="col-md-6">
<label for="yearSelect" class="form-label">选择年份:</label>
<select class="form-select bg-light border-0" id="yearSelect" style="height: 55px;">
<option value="" selected disabled>请选择年份</option>
</select>
</div>
</div>
</div>
<!-- 引入您的自定义 JavaScript 文件 -->
<script src="js/script.js"></script>
<!-- 引入 Bootstrap JS (可选,如果使用了Bootstrap组件) -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>js/script.js
$(document).ready(function() {
// 获取当前年份
const currentYear = new Date().getFullYear();
// 定义年份范围:当前年份前5年到后5年
const yearsBefore = 5;
const yearsAfter = 5;
const startYear = currentYear - yearsBefore;
const endYear = currentYear + yearsAfter;
// 遍历年份范围并生成选项
for (let year = startYear; year <= endYear; year++) {
// 创建 <option> 元素
const option = `<option value="${year}">${year}</option>`;
// 将选项添加到 select 元素中
$('#yearSelect').append(option);
}
// 可选:设置当前年份为默认选中项
// $('#yearSelect').val(currentYear);
});$(document).ready(function() { ... }); 这是jQuery的惯用写法,确保在DOM(文档对象模型)完全加载并解析后才执行内部的代码。这可以防止在尝试操作尚未存在的元素时出现错误。
const currentYear = new Date().getFullYear();new Date() 创建一个表示当前日期和时间的对象。 .getFullYear() 方法从该日期对象中提取出四位数的年份(例如,2023)。这个值被存储在 currentYear 常量中。
const yearsBefore = 5; 和 const yearsAfter = 5; 这两个常量定义了我们希望在当前年份之前和之后显示多少年。您可以根据实际需求调整这些值。
const startYear = currentYear - yearsBefore;const endYear = currentYear + yearsAfter; 根据 currentYear 和定义的范围,计算出循环的起始年份和结束年份。
for (let year = startYear; year <= endYear; year++) { ... } 这是一个标准的 for 循环,从 startYear 开始,一直迭代到 endYear(包括 endYear)。在每次迭代中,year 变量都会持有当前循环到的年份值。
const option =; 在循环内部,使用模板字符串(反引号 `)创建了一个HTML <option> 标签。
$('#yearSelect').append(option);$('#yearSelect') 是jQuery选择器,用于选中 id 为 yearSelect 的HTML元素(即我们的 <select> 标签)。 .append(option) 是jQuery方法,用于将新创建的 option 字符串作为子元素添加到选中的 <select> 元素的末尾。
// $('#yearSelect').val(currentYear); (可选) 这行代码被注释掉了,但它展示了如何设置动态生成的年份选择器的默认选中值。如果您希望加载页面时,当前年份自动被选中,可以取消注释此行。
通过本教程,您已经学会了如何使用JavaScript和jQuery动态生成并限制HTML年份选择器的范围。这种方法不仅减少了手动编写HTML的工作量,还使得年份选择器能够自动适应当前年份的变化,提供了更好的可维护性和用户体验。您可以根据自己的需求灵活调整年份范围和默认选中项,为您的Web应用提供一个高效且专业的年份选择功能。
以上就是动态生成HTML年份选择器:限制年份范围的JavaScript实现的详细内容,更多请关注php中文网其它相关文章!
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号