Скрыть функцию элемента

  • Автор темы kessu
  • 44
  • Обновлено
  • 14, May 2024
  • #1
Привет, Я хочу написать функцию, которая будет выполняться при загрузке страницы, чтобы скрыть календарь, если это старый календарь.



Итак, я подумал, что когда я загружаю календарь, я могу иметь скрытый элемент с текстовым содержимым месяца и написать функцию, чтобы получить текущий месяц и проверить текстовое содержимое элемента, и если оно соответствует блоку отображения, если оно не отображается none, что в основном скроет календарь, если он не обновлен.

Это то, что у меня есть до сих пор.

Я застрял, так как мой оператор if не работает.

Какие-либо предложения.

Как лучше всего это сделать? Спасибо.
https://jsfiddle.net/64uhpenw/1/

kessu


Рег
19 Oct, 2011

Тем
1

Постов
2

Баллов
12
  • 19, May 2024
  • #2
Мне удалось добиться того, чего я хотел, код ниже: По сути, мне следует обернуть это в функцию, которая будет вызываться при загрузке страницы, или просто оставить ее как есть, она будет работать нормально, как и при загрузке страницы.
 #date{

position:relative;

width:500px;

height: 300px;

border: 1px solid black;

margin:auto;

margin-top: 50px;

background: silver;

}

#date h1{
position:absolute;
top:40%;
left:55%;
transform:translate(-50%, -50%);

}

#calendar-label{

display:none;
}
HTML:
 //Select DOM HTML Elements let divDate = document.querySelector('#date'); let calLabel = document.querySelector('#calendar-label'); //Date Variable let theDate = new Date(); //Array of Months let theMonths = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"].map(function(v){ return v.replace(/\s/g,'').toLowerCase(); }); //Current Month Variable let currentMonth = theMonths[theDate.getMonth()]; //Calendar Label Variable let calendarLabel = calLabel.innerHTML.replace(/\s/g,'').toLowerCase(); //Check if calendar Label matches the current month.



let checkMonth = (calendarLabel == currentMonth)?true:false; //If statement to disable out-dated calendar.

if(checkMonth == true){ divDate.style.display = "block"; } else { divDate.style.display = "none"; }; //console.log(currentMonth); //console.log(calendarLabel); //console.log(checkMonth);
Код (JavaScript):
 <div id="date"> <h1> JUNE CALENDAR </h1> <p id="calendar-label"> June </p> </div>
Код (CSS):
 

wassuup


Рег
23 Aug, 2011

Тем
0

Постов
4

Баллов
4
  • 21, May 2024
  • #3
Ух ты, я нашел, как это сделать, даже проще, чем то, что я пытался. Преобразуйте мой массив в нижний регистр, используя .map и передав функцию стрелки. Я новичок в JavaScript, но не знал, что можно использовать переменную сравнения с именем = ()?result1:result2; Что также может быть очень удобно с логическими значениями. Многому научиться Еще раз спасибо.
 

nat2


Рег
20 Apr, 2011

Тем
1

Постов
3

Баллов
13
  • 01, Jun 2024
  • #4
Спасибо.

Это очень информативный ответ.

Проблема в том, что календарь имеет формат JPEG.

Я понял, что, вероятно, смогу получить значение имени в элементе HTML и сопоставить его, вместо того, чтобы пытаться добавить его на веб-страницу. По сути, мне нужно загрузить календарь, но я не несу ответственности за его создание.

Человек, который его создает, не всегда отправляет его вовремя, поэтому, если отображаемый календарь все еще относится к предыдущему месяцу, я бы хотел, чтобы он автоматически отключался. Хэнк
 

wishhaze


Рег
01 Aug, 2012

Тем
1

Постов
2

Баллов
12
  • 11, Jun 2024
  • #5
Спасибо, очень полезно. Возможно, мне нужно преобразовать результат массива в нижний регистр, преобразовать вывод в нижний регистр и использовать сжатие с точным соответствием ==. Я посмотрю на это еще немного. Спасибо за ваш полезный отзыв об отладке.
 

Ruslan Shaltakbaev


Рег
25 Nov, 2012

Тем
1

Постов
3

Баллов
13
Тем
49554
Комментарии
57426
Опыт
552966

Интересно