Показать сообщение отдельно
  #3 (permalink)  
Старый 05.05.2021, 11:59
Аватар для nastya97core
Аспирант
Отправить личное сообщение для nastya97core Посмотреть профиль Найти все сообщения от nastya97core
 
Регистрация: 04.04.2020
Сообщений: 60

рони,
Спасибо огромное. Я не рассчитывала получить готовый результат, но сильно на это надеялась)

У меня ещё один вопрос. Я немного изменила ваш код, но упёрлась в возможное отсутствие объекта

for (let i = 0, count = toCart.length; i < count; i++) {
  toCart[i].addEventListener("click", function() {
    let parent = this.closest(".info");
    let myactive = parent.querySelector(".active-size");
    let name = parent.querySelector(".name-item").innerText;
    let btnsize = parent.querySelector(".btn-size");
    if ((btnsize && myactive) || !btnsize) {
        let size = myactive.innerText || false;
        addToCart([name, size], this);
        myactive.classList.remove("active-size");
      } else {
        animErrShake(".head-size p");
      }

  });
}


У меня есть ситуация, когда btnsize может вообще не быть, тогда кнопка должна нажаться и отправить в массив второе значение false.

Я делаю
// если есть кнопка и она активна либо если кнопки вообще нет
if ((btnsize && myactive) || !btnsize) {
// и вот здесь myactive может не быть, а я пытаюсь достать из него innerText
// на этом месте у меня как раз и возвращает ошибку
let size = myactive.innerText || false;


вообще вот так у меня работает:
if (btnsize) {
      if (myactive) {
        let size = myactive.innerText;
        addToCart([name, size], this);
        myactive.classList.remove("active-size");
      } else {
        animErrShake(".head-size p");
      }
    } else {
      addToCart([name, false], this);
    }


просто тут дважды addToCart вызывается и я думала как-нибудь оптимизировать код.

Скажите пожалуйста, что можно сделать с этой строчкой?
let size = myactive.innerText || false;
Ответить с цитированием