获取数组中每个项目的id's,并在option value中附加每个项目

Get id's of each item in array and append to each item in option value

本文关键字:项目 并在 option value 数组 id 获取      更新时间:2023-09-26

为任何不正确的术语使用道歉,我是Javascript的新手,但希望我能解释我期望的结果,以帮助回答我的问题。

在下面的代码中,我有一个dates数组,其中输出是…

["25/08/2016", "24/08/2016", "23/08/2016", "22/08/2016", "21/08/2016", "20/08/2016", "19/08/2016", "18/08/2016", "17/08/2016"]

然后循环遍历这些日期并将每个日期附加到html选择选项,输出如下…

<select id="dayConstraintList" class="form-control input-lg">
    <option value="25/08/2016">25/08/2016</option>
    <option value="24/08/2016">24/08/2016</option>
    <option value="23/08/2016">23/08/2016</option>
    <option value="22/08/2016">22/08/2016</option>
    <option value="21/08/2016">21/08/2016</option>
    <option value="20/08/2016">20/08/2016</option>
    <option value="19/08/2016">19/08/2016</option>
    <option value="18/08/2016">18/08/2016</option>
    <option value="17/08/2016">17/08/2016</option>
</select>

下面是我当前的代码

var dates = [],
    end = moment(endDate),
    dif = moment(endDate, 'YYYY-MM-DD').diff(moment(startDate, 'YYYY-MM-DD'), 'days');
if(dif <= 0) {
    return;
}
for(var i = 0; i < dif; i++) {
    dates.push(end.subtract(1,'d').format('DD/MM/YYYY'));
}
var option = '';
for (var i = 0; i < dates.length; i++) {
    option += '<option value="' + dates[i] + '">' + dates[i] + '</option>';
}
console.log(dates);
$('#dayConstraintList').empty();
$('#dayConstraintList').append(option);

这是我期望的结果,我该如何实现?任何帮助都将非常感激。

<select id="dayConstraintList" class="form-control input-lg">
    <option value="0">25/08/2016</option>
    <option value="1">24/08/2016</option>
    <option value="2">23/08/2016</option>
    <option value="3">22/08/2016</option>
    <option value="4">21/08/2016</option>
    <option value="5">20/08/2016</option>
    <option value="6">19/08/2016</option>
    <option value="7">18/08/2016</option>
    <option value="8">17/08/2016</option>
</select>

您必须更改这部分代码:

for (var i = 0; i < dates.length; i++) {
    option += '<option value="' + dates[i] + '">' + dates[i] + '</option>';
}
由:

for (var i = 0; i < dates.length; i++) {
    option += '<option value="' + i + '">' + dates[i] + '</option>';
}

你改变了

<option value="' + dates[i] + '">' + dates[i] + '</option>

<option value="' + i + '">' + dates[i] + '</option> 

您也可以按以下方式完成这项工作;

var dates = ["25/08/2016", "24/08/2016", "23/08/2016", "22/08/2016", "21/08/2016", "20/08/2016", "19/08/2016", "18/08/2016", "17/08/2016"],
    selel = document.getElementById("dayConstraintList");
    
selel.appendChild(dates.map(d => {var opel = document.createElement("option"); opel.value = d; opel.textContent = d; return opel})
                       .reduce((df,opel) => (df.appendChild(opel), df),document.createDocumentFragment()));
<select id="dayConstraintList" class="form-control input-lg">
</select>

相关文章: