.forEach или .reduce для работы с DOM
Допишите функцию при клике на кнопку «Использовать купон на 15%» вызывается функция
applyDiscount, она должна применить скидку 15% к каждому товару в корзине и изменить итоговую стоимость заказа. Помните, что скидка должна примениться один раз. Для решения этой задачи вам поможет функция —getDomNodesBySelector.
Нужно использовать .forEach или .reduce. Написала функцию, но скидка после нажатия не применяется.
function getDomNodesBySelector(selector) {
return Array.from(document.querySelectorAll(selector));
}
document.querySelector('.total__button').addEventListener('click', applyDiscount);
function applyDiscount() {
}
Ответы (2 шт):
Автор решения: Art3mk4
→ Ссылка
function applyDiscount() {
var items = [];
getDomNodesBySelector('.price-value').forEach(function(value, index) {
items.push(Number(value.innerHTML));
});
return items.reduce(function (previous, current) {
return previous - previous * 0.15 + current - current * 0.15;
});
}
Автор решения: S1Ash
→ Ссылка
function getDomNodesBySelector(selector) {
return [...document.querySelectorAll(selector)];
}
document.querySelector('.total__button').addEventListener('click', applyDiscount);
function applyDiscount() {
let totalSum = 0;
getDomNodesBySelector(".price-value").forEach(item => {
item.innerHTML = item.innerHTML*0.85;
totalSum += +item.innerHTML
})
document.querySelector(".total-price-value").innerHTML = totalSum
this.removeEventListener('click', applyDiscount);
}