You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JQuery DatePicker中beforeShowDay方法无法高亮指定日期问题求助

JQuery DatePicker中beforeShowDay方法无法高亮指定日期问题求助

我现在快急死了,完全搞不懂beforeShowDay为啥不按我预期的工作。我想把从数据库(通过Ajax获取)里拿到的某些日期高亮显示,但怎么都没效果,不管换哪种日期格式,这些日期就是不高亮。

我的代码情况:

HTML部分

我是这样调用日历的:

<div class="calendar" id="Date" ></div>

Ajax获取日期数组部分

我通过Ajax拿到日期数组的代码是这样的:

var days_custom = [];
URL = 'get_date.php';

$.ajax({
    type: "GET",           
    url: URL,
    dataType: 'json',
    success: function(data) {                 
        for (var t in data) {
            days_custom[days_custom.length] = data[t].date
        }
        console.log(days_custom);
       
    }
});

控制台里显示的日期格式是这样的:

['2024-05-05', '2024-05-07', '2024-05-08', '2024-05-09', '2024-05-11', '2024-05-12', '2024-05-13', '2024-05-14', '2024-05-15', '2024-05-17', …]

DatePicker配置部分

接下来我尝试用这些日期来修改背景色,实现高亮:

$("#Date").datepicker({
    dateFormat: 'yy-mm-dd',
    beforeShowDay: function(date) {       
                      
        t_date = $.datepicker.formatDate('yyyy-mm-dd', date);
            
        
        if (days_custom.indexOf(t_date) > -1) {
            return [true, 'event', 'test highlight'];
            
        }
        return [true];
    }
});

CSS样式部分

我的CSS文件里写了这个样式:

.event a {
    background-color: #5FBA7D !important;
    color: #ffffff !important;
}

遇到的问题

完全没效果!我甚至在beforeShowDay函数里加了控制台输出,但什么都没显示,我都怀疑这个函数根本没执行过。另外我还试过在初始化日期选择器前先销毁它(之前看别的问题里有人这么做),但也没用,后来就删掉了那部分代码。

求各位大佬帮忙看看问题出在哪!

备注:内容来源于stack exchange,提问作者Drizzt9781

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 09:27:57