Вы можете настроить свое заявление if, чтобы получить то, что вы хотите:
jQuery('.c-day').each(function(i) {
let jqThis = jQuery(this);
let date = jQuery.trim(jqThis.text());
console.log(date);
if (i == 0 || (i > 29 && date < 12)) jqThis.hide();
});
Что это изменение делает (i > 29 && date < 12)
, использует как index
, так и дату, которая у вас уже есть. Если индекс выше 29, это означает, что он, вероятно, со следующего месяца, но мы не можем быть уверены, поскольку в некоторых месяцах 30 дней, а в некоторых 31. Поэтому мы проверяем на date
. Если значение ниже 12, это означает, что это из следующего месяца.
Я выбрал 12, так как думаю, что ни один календарь не будет отображать больше 12 дней со следующего месяца, но вы можете изменить его, если я ошибаюсь, значение до 20 или что-то будет работать одинаково хорошо.
Поскольку в декабре много дней по сравнению с предыдущим месяцем, необходима другая логика, которая всегда должна работать:
jQuery('.c-day').each(function(i) {
let jqThis = jQuery(this);
let date = jQuery.trim(jqThis.text());
let dayCounter = 1;
console.log(date);
if (date > dayCounter || date < dayCounter){
jqThis.hide();
} else {
dayCounter++;
}
});
Это работает, зная, что все дни предыдущего месяца будут большечем день 1, и все дни следующего месяца будут меньше, чем последний день месяца. Мы отслеживаем день, в который мы находимся, поэтому дни этого месяца никогда не скрываются.