如何实现基于当前年份的动态年份范围并添加至下拉选择框
实现动态年份范围的下拉选择框
没问题,我们可以通过获取当前系统年份来动态计算你需要的年份范围(当前年份±5),以下是修改后的完整代码,我会给你拆解关键改动点:
修改后的完整代码
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="modal-body"> <div class="form-group"> <label>Year</label> <select id="myselectYear"> <option value="">-Select-</option> </select> </div> <div class="col-md-4"> <div class="form-group"> <label>Month</label> <select id="myselectMonth"> <option value="">-Select-</option> </select> </div> </div> </div> <script> $(document).ready(function() { // 获取当前年份 const currentYear = new Date().getFullYear(); // 计算起始年份(当前年份-5)和结束年份(当前年份+5) const startYear = currentYear - 5; const endYear = currentYear + 5; // 循环添加年份选项 for (let year = startYear; year <= endYear; year++) { $("#myselectYear").append(new Option(year, year)); } // 额外:如果需要动态生成月份选项,可以加这段 for (let month = 1; month <= 12; month++) { // 给月份补前导零,比如1变成"01" const monthText = month.toString().padStart(2, '0'); $("#myselectMonth").append(new Option(monthText, month)); } }); </script>
关键改动说明
- 获取当前年份:使用
new Date().getFullYear()获取系统当前的4位年份,这是实现动态范围的核心。 - 计算年份范围:根据需求,起始年份是
当前年份-5,结束年份是当前年份+5,这样不管哪一年打开页面,范围都会自动调整。 - 循环逻辑优化:原来的循环是固定次数,现在改成从起始年份循环到结束年份,逻辑更直观,也避免了固定次数可能带来的错误。
- 额外优化(可选):我顺便加了动态生成月份选项的代码,补了前导零让显示更规范,如果你不需要可以直接删掉这段。
内容的提问来源于stack exchange,提问作者Joey Jaison
相关产品推荐
相关产品推荐

