在年份的下拉列表中获取当前年份

Abh*_*sha 3 html javascript

这是我在 html 中的下拉列表

<select name="select" class="form-control" id="dropdownYear" style="width: 120px;" onchange="getProjectReportFunc()">
    <option value="2015">2015</option>
    <option value="2016">2016</option>
    <option value="2017" selected="selected">2017</option>
    <option value="2018">2018</option>
    <option value="2019">2019</option>
    <option value="2020">2020</option>
Run Code Online (Sandbox Code Playgroud)

我对年份值进行了硬编码,我想用选择的当前年份和之前和之后的 3 年填充此下拉列表。例如,对于当前年份 = 2017,我希望列表为 2013-2020 并自动选择 2017。我如何在 js 中做到这一点?

Sve*_*ode 5

为了实现这一点,需要使用Date,无论是直接使用还是使用一些外部库。使用本机方法getFullYear

Date.prototype.getFullYear()

根据本地时间返回指定日期的年份(4 位为 4 位年份)。

我们可以设置当前年份,然后循环访问所需的值。您指定了 2013 年 - 2020 年,因此我们将使用当前年份减 4 到当前年份加 3。

for (var i = year - 4; i <= year + 3; i++)
Run Code Online (Sandbox Code Playgroud)

在循环体中,创建Options并将它们添加到Select。要显示值,innerHTML需要设置,如果您想在 javascript 中的其他地方使用该值,value还需要设置:

option.value = option.innerHTML = i; 
Run Code Online (Sandbox Code Playgroud)

如果索引等于当前年份,则设置该selected属性。

if (i === year) option.selected = true;
Run Code Online (Sandbox Code Playgroud)

然后,您需要做的就是将每个option元素附加到select元素。select创建完成后,将其插入到您的 HTML 中(这里我将附加到正文中)。

for (var i = year - 4; i <= year + 3; i++)
Run Code Online (Sandbox Code Playgroud)