Я пытаюсь удалить даты предыдущего и следующего месяца из следующего календаря.

enter image description here

jQuery('.c-day').each(function() {
    let jqThis = jQuery(this);
    let date = jQuery.trim(jqThis.text());
    console.log(date);
});

Приведенный выше код jQuery выбирает все ячейки. Это то, что я получаю.

30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10

Тем не менее, я могу отфильтровать / удалить 30 с начала и 1 2 3 4 5 6 7 8 9 10 с конца, но это не работает с другими месяцами, такими как ноябрь, Декабрь, январь и т. Д.?

jQuery('.c-day').each(function(i) {
    let jqThis = jQuery(this);
    let date = jQuery.trim(jqThis.text());
    console.log(date);
    if (i == 0 || i > 29) jqThis.hide();
});

Может кто-нибудь помочь мне с логикой здесь?

0
AZee

1 ответ

Вы можете настроить выражение 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 или что-то будет работать одинаково хорошо.

58596095