Я пытаюсь удалить даты предыдущего и следующего месяца из следующего календаря.
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();
});
Может кто-нибудь помочь мне с логикой здесь?
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 или что-то будет работать одинаково хорошо.
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.