我在星期六的星期六试着addClass
。我尝试了2种方法,但都没有正常工作。
#1
我为每个:odd
添加了tr
。 Demo Fiddle
$('.ui-datepicker-calendar tr:odd').each(function(){
$(this).addClass('odd');
});
但是,如果看到四月的蛾子结束并且开始五月不是奇怪的状态。
#2
我在小提琴的某个地方得到了一个奇怪的黑客。 Demo Fiddle
$('td.ui-datepicker-week-end .ui-state-default').each(function(i, el) {
if (i % 2 === 0) {
$(this).addClass('sat');
}
else {
$(this).addClass('sun');
}
});
$('.sat').each(function(i, el) {
if (i % 2 === 0) {
$(this).addClass('work-sat');
}
else {
$(this).addClass('non-sat');
}
});
这样可以正常工作,但是如果你使用next,prev按钮更改上个月的某个月份。它会自动变成奇数,反之亦然。几个月后自动更改会自动更改。
我不知道为什么会这样?
答案 0 :(得分:2)
最安全的方法是从表格单元格中读取年份月份和日期,然后检查当天
$('.ui-datepicker td .ui-state-default').each(function(i, el) {
var month = $(el).parent().attr('data-month');
var year = $(el).parent().attr('data-year');
var day = $(el).text();
var date = new Date(year, month, day);
if (date.getDay() == 6) {
i += 1;
if (i % 2 == 0) {
$(el).addClass('work-sat');
} else {
$(el).addClass('non-sat');
}
}
});
如果我标记了候补星期六,只要让i = 0;在init和调用onChangeMonthYear函数时。
您还可以将超时设置为1,以便标记立即显示。
这里是完整的小提琴https://jsfiddle.net/jajoevjy/8/