рони,
Спасибо огромное. Я не рассчитывала получить готовый результат, но сильно на это надеялась)
У меня ещё один вопрос. Я немного изменила ваш код, но упёрлась в возможное отсутствие объекта
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;