2017-02-26 76 views
0

我已經顯示了我的網頁上使用jQuery UI的多個日曆。日曆工作正常。我正在嘗試獲取日曆的ID,當我點擊日曆上的下一個或上一個按鈕時。我使用的代碼是這樣的:獲取日曆div的ID點擊next/prev按鈕在日曆在jquery

<div class="calendar" id="calendar1"></div> 
<div class="calendar"id="calendar2"></div> 
<div class="calendar" id="calendar3"></div> 

和jQuery代碼

$('.calendar').datepicker({ 
    inline: true, 
    firstDay: 1, 
    showOtherMonths: true, 
    dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] 
}); 
$(document).on('click', '.ui-datepicker-next', function() { 
    console.log($(this).parent().parent().parent().attr('id')); 
}); 

它應該顯示CALENDAR1/CALENDAR2/calendar3但不是顯示ID它顯示未定義。在日期選擇器的HTML是這個

<div class="calendar hasDatepicker" id="calendar1"> 
    <div class="ui-datepicker-inline ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" style="display: block;"> 
    <div class="ui-datepicker-header ui-widget-header ui-helper-clearfix ui-corner-all"> 
     <a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_1488149175514.datepicker._adjustDate('#calendar50', -1, 'M');" title="Prev"> 
     <span class="ui-icon ui-icon-circle-triangle-w">Prev</span> 
     </a> 
     <a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_1488149175514.datepicker._adjustDate('#calendar50', +1, 'M');" title="Next"> 
     <span class="ui-icon ui-icon-circle-triangle-e">Next</span> 
     </a> 

,因爲我們可以看到父母通話是正確的,這是工作,如果我使用

console.log($('.ui-datepicker-next').parent().parent().parent().attr('id')); 

但總會給第一個div即CALENDAR1的ID。

+0

的問題將在父母的'多重鏈接()'。我實際上看不到'.ui-datepicker-next'正在動態構建的位置,但是它注意到它會爲輸入創建一個div ** separate **。在獲取ID之前,您需要鏈接一個'find()'來定位輸入字段。它應該仍然返回**一些** ID,所以我猜你可能使用了太多的父母選擇器。嘗試第一次記錄'$(this)',然後從那裏進行鏈接:) –

+0

可以添加更多的ur html?主要是我的意思是包括'ui-datepicker-next'的部分 –

回答

0

隨着文檔的公司:onChangeMonthYear(Integer year, Integer month, Object inst)

onChangeMonthYear:function(year, month, instance){ 

    console.log(instance.id) 

} 

所以請嘗試使用:

$('.calendar').datepicker({ 
    inline: true, 
    firstDay: 1, 
    showOtherMonths: true, 
    dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], 
    onChangeMonthYear:function(year, month, instance){ 

     console.log(instance.id) 

    } 
});