Odinokun
@Odinokun

Насколько правильно проверять наличие элемента через if?

На страницах сайта есть одинаковый элемент содержащий заголовок, подзаголовок и кнопку, которые будут анимироваться с помощью GSAP.
Но на некоторых страницах может не быть кнопки или подзаголовка.
Насколько правильно делать проверку через if как сделано в коде ниже, или существует более элегантное решение?
PS На всякий случай уточню, что если не проверять элемент на наличие, то функция сломается на отсутствующем элементе.

function cardAnimate(){
  let title = document.getElementById('card__title');
  let subtitle = document.getElementById('card__subtitle');
  let btn = document.getElementById('btn');
  
  if(title){
    TweenLite.to(title, .75, {transform:"translateX(0)"});
  }
  if(subtitle){
    TweenLite.to(subtitle, .75, {transform:"translateY(0)"});
  }
  if(btn){
    TweenLite.to(btn, .75, {transform:"translateX(0)"});
  }
}
cardAnimate();
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
@romicohen
Системный Архитектор
Нормуль :)

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

Иногда читаемость кода важнее псевдоэлегантности.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@bqio
https://bqio.github.io/
document.getElementById возвращает null в случае отсутствия элемента. Какая проверка вам еще нужна, если не if?
Ответ написан
Xuxicheta
@Xuxicheta
инженер
Ну можешь конечно так написать
function cardAnimate(){
  [
    document.getElementById('card__title'),
    document.getElementById('card__subtitle'),
    document.getElementById('btn'),
  ].forEach(el => el && TweenLite.to(el, .75, {transform:"translateX(0)"}));  
}


Надо не от ифов избавляться, а от повторяющегося кода
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы