プロが教えるわが家の防犯対策術!

http://oshiete.goo.ne.jp/qa/5738655.html
上記に似たような質問があったのですが、ここから進めることができませんでしたので質問させていただきました。

皆様のお知恵をかしていただければ幸いです。

javascriptで、当日から2ヶ月間分の月水土の日付と曜日を出力し、プルダウンに表示させるといったものを行いたいです。

<select name="" class="">
<option value="2013-01-20">1月19日(土)</option>
<option value="2013-01-15">1月21日(月)</option>
<option value="2013-01-17">1月23日(水)</option>
<option value="2013-01-20">1月26日(土)</option>
<option value="2013-01-15">1月28日(月)</option>
<option value="2013-01-17">1月30日(水)</option>
<option value="2013-01-20">2月2日(土)</option>
<option value="2013-01-15">2月4日(月)</option>
<option value="2013-01-17">2月6日(水)</option>
<option value="2013-01-20">2月9日(土)</option>
<option value="2013-01-15">2月11日(月)</option>
<option value="2013-01-17">2月13日(水)</option>
<option value="2013-01-20">2月16日(土)</option>
<option value="2013-01-15">2月18日(月)</option>
<option value="2013-01-17">2月20日(水)</option>
<option value="2013-01-20">2月23日(土)</option>
<option value="2013-01-15">2月25日(月)</option>
<option value="2013-01-17">2月27日(水)</option>
<option value="2013-01-20">3月2日(土)</option>
<option value="2013-01-15">3月4日(月)</option>
<option value="2013-01-17">3月6日(水)</option>
<option value="2013-01-20">3月9日(土)</option>
</select>

最終的にこのような形で出力されるのが理想です。

別の質問でにたものは土曜日だけでしたので、その他の曜日を追加する事ができませんでした。

もしお分かりの方がいらっしゃいましたら、ご教授頂けると幸いです。
以上、よろしくお願い致します。

A 回答 (2件)

こんな感じでもよいかも



<script>
window.onload=function(){
var sel=document.getElementById("hoge");
var d1=new Date();
var d2=new Date();
d1.setMonth(d1.getMonth()+2);
var youbi=["日","月","火","水","木","金","土"];
while(d2 < d1){
d2.setDate(d2.getDate()+1);
if(d2.getDay().toString().match(/[136]/)){
var obj=document.createElement("option");
var txt=(d2.getFullYear())+"-"+(d2.getMonth()+1)+"-"+d2.getDate();
obj.setAttribute("value",txt);
var txt=(d2.getMonth()+1)+"月"+d2.getDate()+"日("+youbi[d2.getDay()]+")";
obj.appendChild(document.createTextNode(txt));
sel.appendChild(obj);
}
}
}
</script>
<select id="hoge">
</select>
    • good
    • 0
この回答へのお礼

ご連絡が遅くなりました。
素早いご回答ありがとうございました。

やりたい事が実現できました!
勉強不足で申し訳ございません。

助かりました。

お礼日時:2013/01/22 12:40

こんにちは。



2ヶ月先だと3/18(月)も対象になると思います。またvalueの内容がリピートしてるのは転記ミスでしょうか。

60日として以下のように作ってみました。

==== HTML
<select id="selectDate">
</select>


==== JavaScript
<script type="text/javascript">
var w = new Array ( '日', '月', '火', '水', '木', '金', '土' );
window.onload = function() {
var selectDateOptions =
document.getElementById('selectDate').options;
selectDateOptions.length = 0;
for ( var i = 0; i <= 60; i ++ ) {
var date = new Date();
//日付を加算
date.setDate ( date.getDate() + i );
var day = date.getDay();
// 曜日が1:月 3:水 6:土のときのみ処理
if ( day === 1 || day === 3 || day === 6 ) {
var strText =
('0'+(date.getMonth()+1)).slice(-2) + '月' +
('0'+date.getDate()).slice(-2) + '日' +
'(' + w[date.getDay()] + ')';
var strValue =
date.getFullYear() + '-' +
('0'+(date.getMonth()+1)).slice(-2) + '-' +
('0'+date.getDate()).slice(-2);

selectDateOptions[selectDateOptions.length] = new Option ( strText, strValue );
}

}
};
</script>
    • good
    • 0
この回答へのお礼

ご連絡が遅くなりました。

ご指摘部分は転載ミスでした、すみません。

素早いご回答ありがとうございました、大変助かりました。

とても勉強になりました。

お礼日時:2013/01/22 12:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!