Javascript 如何在Jquery Datepicker中向日期添加特殊的ID(如工具提示)?

Javascript 如何在Jquery Datepicker中向日期添加特殊的ID(如工具提示)?,javascript,jquery,jquery-ui,datepicker,Javascript,Jquery,Jquery Ui,Datepicker,您好,我是Jquery的初学者,我开始使用Jquery datepicker,我使用这段代码是因为这对我的项目很好,但我需要为日期添加一个特定的ID,因为当单击日期时,将显示一个带有信息的Div 显示信息的代码并不重要 JQUERY var disabledDays = ["2014-3-5", "2014-3-13", "2014-3-28"]; var tips = ['aaa', 'bbb', 'ccc']; //the IDs var ids = ['first', 'second',

您好,我是Jquery的初学者,我开始使用Jquery datepicker,我使用这段代码是因为这对我的项目很好,但我需要为日期添加一个特定的ID,因为当单击日期时,将显示一个带有信息的Div

显示信息的代码并不重要

JQUERY

var disabledDays = ["2014-3-5", "2014-3-13", "2014-3-28"];
var tips = ['aaa', 'bbb', 'ccc'];

//the IDs
var ids = ['first', 'second', '3er'];

$("#datepicker").datepicker({
    showButtonPanel: false,
    firstDay: 1,
    dateFormat: 'yy-mm-dd',
    beforeShowDay: function (date) {
        var m = date.getMonth(),
            d = date.getDate(),
            y = date.getFullYear();
        for (i = 0; i < disabledDays.length; i++) {
            if ($.inArray(y + '-' + (m + 1) + '-' + d, disabledDays) != -1) {
                //return [false];
                return [true, 'id='+ids[i], 'highlight', tips[disabledDays.indexOf(y + '-' + (m + 1) + '-' + d)]];
            }
        }
        return [true];
    }

});

$("#first").click(function () {
    $("#aaa-info").show();
});

我不确定你是否想在datepicker中每天都添加一个ID。但是我得到了基本的功能。文档中说,
beforeShowDay
函数必须返回一个包含三个元素的数组。您返回了4个元素。此外,您不必运行循环,因为数据采集器会在日历中显示的每一天运行循环。我删除了循环并编辑了返回数组,它正常工作了

这是一个

这是我更改的代码

 beforeShowDay: function (date) {
    var m = date.getMonth(),
        d = date.getDate(),
        y = date.getFullYear();

        if ($.inArray(y + '-' + (m + 1) + '-' + d, disabledDays) != -1) {

            return [true, 'highlight', 'Tooltip: function returned true'];
        }
        else {
            return [ false, 'highlight', 'Tooltip: function returned false']
        }
  }
如果目标是显示关于那天的信息,我会添加一个函数来获取日期,查找页面上隐藏的元素并返回文本。像这样的

myTip = function(date){
    //use the date to find hidden information on page
    var myDate = date.toString();
    var tip = "This date is " + myDate;
    return tip;
};
然后您可以将返回数组更改为

 return [true, 'highlight', myTip(date) ];

我更改了代码,但无法解决问题我在返回行中添加了ID您可以在此处检查代码,这样当您单击日历中的某一天时,您希望显示一个隐藏的div,其中包含关于该月某一天的信息?是,我需要的是将ID分配给日期信息是为循环生成的,但主要问题是向日期添加ID嗨,谢谢你的回答,我知道该函数适用于工具提示和类,但问题是,如何向日期添加ID?我认为datebeforeshow可能是这样的,如果我不能这样添加ID,我会这样做吗?我看到datepicker下面的函数在#第一个元素上附加了一个单击,以显示隐藏的div。我知道您希望在与单击事件匹配的日期添加ID,但我认为这不是方法。还可以尝试使用“onSelect”方法。它将在点击日期时触发,然后您可以编写一个函数来计算要显示哪个div。您可以在对话框中弹出隐藏的div,用户可以在准备就绪时关闭该对话框。遍历jQuery创建的表并找到具有正确日期的单元格并不是正确的方法。据我所知,你能查一下吗?我添加了onSelect方法,但这是我第一次使用datepicker,我想我做得不好。我今晚晚些时候才能检查它,但我会在中央时间8:00左右查看。非常感谢您的帮助
myTip = function(date){
    //use the date to find hidden information on page
    var myDate = date.toString();
    var tip = "This date is " + myDate;
    return tip;
};
 return [true, 'highlight', myTip(date) ];