Javascript 将类添加到jQuery UI中的日历日(多个)

Javascript 将类添加到jQuery UI中的日历日(多个),javascript,jquery,css,jquery-ui,Javascript,Jquery,Css,Jquery Ui,我正在为jQueryUI日期选择器使用多个日期选择器。直到现在一切都很顺利。事实证明,制作它的开发者已经多年没有碰过它了,并且预高亮显示日期不再有效。这是我的计划。我将把需要突出显示的日期放入一个数组中,然后使用jQuery将必要的类添加到日历中。这就是我被困的地方。当出现以下情况时,如何定位此特定锚点: <td class=" ui-datepicker-week-end ui-datepicker-current-day" data-handler="selectDay" data-

我正在为jQueryUI日期选择器使用多个日期选择器。直到现在一切都很顺利。事实证明,制作它的开发者已经多年没有碰过它了,并且预高亮显示日期不再有效。这是我的计划。我将把需要突出显示的日期放入一个数组中,然后使用jQuery将必要的类添加到日历中。这就是我被困的地方。当出现以下情况时,如何定位此特定锚点:

<td class=" ui-datepicker-week-end  ui-datepicker-current-day" data-handler="selectDay" data-event="click" data-month="10" data-year="2017">
<a class="ui-state-default" href="#">18</a> <!-- needs class: ui-state-active-->
</td>


那么,我如何根据数据月、数据年以及锚定中的数字制定目标呢?非常感谢您的帮助

使用beforeShowDay事件触发函数


已更新

要获取锚定标记内的值,可以使用jQuery选择器使用月份和年份缩小搜索范围

然后循环该月份和年份中的所有日期,并在锚上使用find()方法来获取日期。将日历日期与数组中的日期进行比较,如果它们匹配,则将其高亮显示

这里是一个例子,但我不确定性能或它将如何扩展

$(文档).ready(函数(){
var myDates=[“2017年10月18日”、“2017年10月20日”];
myDates.forEach(函数(dateString){
变量日期=新日期(日期字符串);
var currMonth=date.getMonth()+1;
var currYear=date.getFullYear();
var currDay=date.getDate();
var$monthYear=$(`td[data month='${currMonth}']][data year='${currYear}']`);
$monthYear.每个(功能(i,元素){
var calendarDay=$(elem.find(“a”).text();
var currDate=`${currMonth}/${calendarDay}/${currYear}`;
如果(dateString==currDate){
$(elem).addClass(“突出显示”);
}
});
})
})
。突出显示{
背景颜色:黄色;
}


hmm。。。看起来一个月的所有日子都是这样。你将如何确定一个特定的日子,然后在其中添加一个类?如果(day=='18'){day.addClass('ui-state-active')}?我更新了我的答案,使其更通用,它包括一个像您指定的数组,并将该类添加到日期中,我将试一试。理想情况下,我希望使用插件使用的相同类,这样我就可以模拟它被点击,至少在编程上它与类无关。它是这个jQuery插件的本机回调,您不需要任何类型的选择器,因为这将是第三方,会带来所有后果:复杂的依赖关系和禁止的更新。一切都很简单,比如:你能构建选择器吗?对你需要一个吗?不,这是糟糕的编码实践。