2016-08-15 10 views
0

誤った用語の使用についてのお詫び、私はJavascriptを初めて使用していますが、私の質問に答えるために役立つと期待できる結果を説明できます。配列内の各項目のIDを取得し、オプション値の各項目に追加します

以下の私のコードで

、Iが出力されるdatesの配列を持っている...

​​

私は、これらの日付をループし、HTMLのselectオプションに各日付を追加し、出力としてあります以下は、次の...

<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

ただ、 ' –

+0

@RoryMcCrossanを信じることができない、ありがとう'値= " '+日付[I] + ' "'値'へ="' + I +'" に変更それはそれほど簡単で、私はそれを考え直していた – 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>

関連する問題