在jquery中点击日历中的next / prev按钮获取日历div的id

时间:2017-02-26 22:34:53

标签: javascript jquery html jquery-ui calendar

我使用jquery UI在我的页面上显示了多个日历。日历工作正常。当我点击日历上的下一个或上一个按钮时,我正在尝试获取日历的ID。我正在使用的代码是:

<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时它显示undefined。 datepicker 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的id,即calendar1。

1 个答案:

答案 0 :(得分: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)

    }
});