2012-08-26 56 views
11

我有兩個下拉列表持有幾個月和幾年...獲取當前的月份和日期使用jquery

$(document).ready(function() {    
    $('#Months option:eq(' + (new Date).getMonth() + ')').prop('selected', true); 
     alert((new Date).getMonth());   
    $('#Years option:eq(' + (new Date).getFullYear() + ')').prop('selected', true); 
     alert((new Date).getFullYear()); 
}); 

我寫了如上的jQuery腳本,使我的程序運行時的下拉列表中選擇值必須是當前月和年..

但是當我執行程序.. 警報給出7和2012 ..但在我看來當前的月份被選中,但當年不是爲什麼?以及如何讓我的下拉列表選擇當年?

+1

提供一些更多的代碼,並張貼在jsfiddle.net演示 –

回答

17

的jQuery

var d = new Date(), 

    n = d.getMonth(), 

    y = d.getFullYear(); 

$('#months option:eq('+n+')').prop('selected', true); 

$('#years option[value="'+y+'"]').prop('selected', true); 

HTML

​<select id="months"> 
    <option value="1">January</option> 
    <option value="2">February</option> 
    <option value="3">March</option> 
    <option value="4">April</option> 
    <option value="5">May</option> 
    <option value="6">June</option> 
    <option value="7">July</option> 
    <option value="8">August</option> 
    <option value="9">September</option> 
    <option value="10">October</option> 
    <option value="11">November</option> 
    <option value="12">December</option> 
</select> 
<select id="years"> 
    <option value="2011">2011</option> 
    <option value="2012">2012</option> 
    <option value="2013">2013</option> 
</select> 

DEMO

+0

非常感謝您工作.. –

2

個月從0(一月)到11(十二月)返回一個整數:看 http://www.java2s.com/Tutorial/JavaScript/0240__Date/DategetMonth.htm

所以本月(8月)將返回7.爲了能夠與通常的匹配月份指數(含義1至12),請使用 ((new Date()).getMonth() + 1)

正如在評論中指出,我誤解了問題。這個月是正確的,因爲從零開始數組數月,jquery選擇器:eq()也是從零開始的。

但是在其他的答案指出,今年返回將不匹配這在jQuery選擇的第n個元素相匹配:eq()。使用建議option[value=' + (new Date).getFullYear() + ')'會更好。

+0

OP有問題本年度:「在我看來,當前月被選擇,但目前一年不爲什麼?」 – nemesv

+0

我不是故意在我的下拉列表中顯示八月,但我想在我的第二個下拉列表中顯示2012 ...因爲它顯示的最小值,即2007 .. –

+0

@nemesv:我想問同樣的題?? –

1

jQuery中的選擇器的:eq(N)部選擇在第N個元素(包括0)級匹配小號et(在那一點上將是#Years option)。因此,除非在Years下拉菜單中有更多2012年選項,否則這種方式無效。

這是更好地選擇基於它的選項的值:option[value=2012]

just use $("#Years").val(2012),這是更具可讀性和更少的代碼。

+0

但我的警報消息顯示2012 .. –

+0

@ sna2stha:而且?您的提醒只顯示當前年份,而不顯示選定的選項。 – lqc

相關問題