Javascript 无法为datepicker中每个高亮显示的日期动态设置工具提示

Javascript 无法为datepicker中每个高亮显示的日期动态设置工具提示,javascript,jquery,Javascript,Jquery,我使用jquery datepicker日历对一些日期进行了突出显示。我的问题是,我试图为突出显示的每个日期提供工具提示,但我无法实现 我试过的代码 beforeShowDay: function(date) { var highlightdays=["2014-11-20", "2014-11-21", "2014-11-24", "2014-11-25"]; var whosebday=["mani-bday","john-bday","saro-bday","mikel-b

我使用jquery datepicker日历对一些日期进行了突出显示。我的问题是,我试图为突出显示的每个日期提供工具提示,但我无法实现

我试过的代码

beforeShowDay: function(date) {
    var highlightdays=["2014-11-20", "2014-11-21", "2014-11-24", "2014-11-25"];
    var whosebday=["mani-bday","john-bday","saro-bday","mikel-bday"];
    var y = date.getFullYear().toString(); // get full year
    var m = (date.getMonth() + 1).toString(); // get month.
    var d = date.getDate().toString(); // get Day
    //alert(m.length);
    if(m.length == 1){ m = '0' + m; } // append zero(0) if single digit
    if(d.length == 1){ d = '0' + d; } // append zero(0) if single digit
    //var currDate = y+'-'+m+'-'+d;


for (var i = 0; i < highlightdays.length; i++) {

  if($.inArray(y + '-' + (m) + '-' + d,disabledDays) != -1) {
  //alert("i value"+i);
  return [true, 'cssdate', 'Today bday for:'+whosebday[i]];

     }
        var day = date.getDay();
        return [(day != 0), ''];//Disable all sundays


        }
        return [true];

}
beforeShowDay:函数(日期){
var highlightdays=[“2014-11-20”、“2014-11-21”、“2014-11-24”、“2014-11-25”];
var whosebday=[“mani bday”、“john bday”、“saro bday”、“mikel bday”];
var y=date.getFullYear().toString();//获取全年
var m=(date.getMonth()+1.toString();//获取月份。
var d=date.getDate().toString();//获取日期
//警报(m.length);
如果(m.length==1){m='0'+m;}//如果是单个数字,则追加零(0)
如果(d.length==1){d='0'+d;}//如果是单个数字,则追加零(0)
//变量currDate=y+'-'+m+'-'+d;
对于(var i=0;i
我想问题是
I
值在
whosebay[I]中不会增加。

注意:输出是,mani bday([0])只适用于所有日期。
有人告诉我哪里错了吗?

错误在于使用
for
循环和
$。inArray
内部<代码>$。如果找到日期,inArray将为您提供日期索引,否则将为您提供
-1
。您的循环总是命中
return
语句。因此,它总是执行一次且仅执行一次迭代。因此,为什么总是得到
i=0

摆脱循环,如果找到
$返回的相应索引,只需返回
true
。inArray
。对代码进行一点重构:

beforeShowDay: function(date) {
    var y = date.getFullYear().toString(); // get full year
    var m = (date.getMonth() + 1).toString(); // get month.
    var d = date.getDate().toString(); // get Day
    if(m.length == 1){ m = "0" + m; } // append zero(0) if single digit
    if(d.length == 1){ d = "0" + d; } // append zero(0) if single digit

    var ymd = y + '-' + (m) + '-' + d;
    var i = $.inArray(ymd, highlightdays);
    if (i != -1) {
        return [true, "cssdate", whosebday[i]];
    }

    var day = date.getDay();
    return [day != 0, ''];//Disable all sundays
}