2016-08-15 92 views
0

對於任何不正確使用術語的道歉,我是Javascript的新手,但希望我能解釋我期望幫助回答我的問題的結果。獲取陣列中每個項目的ID並附加到選項值中的每個項目

在下面我的代碼,我有dates其中輸出是一個數組...

​​

我然後依次通過這些日期並追加每個日期的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> 
+1

只要改變'值= 「 '+紅棗[I] + ' 」''到值=「' + I +'」' –

+0

@RoryMcCrossan謝謝你,不能相信就這麼簡單,我正在推翻它 – mcclosa

回答

2

你必須改變這部分代碼:

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>'; 
} 
0

你改變

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

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

您也可以按如下方式完成這項工作;

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>